Edit report at http://bugs.php.net/bug.php?id=49148&edit=1

 ID:                 49148
 Comment by:         arl at andrewrlevine dot com
 Reported by:        mugeso at mugeso dot com
 Summary:            combination of stream_get_line and fseek does not
                     work correctly
 Status:             Open
 Type:               Bug
 Package:            Streams related
 Operating System:   win32 only - Windows XP SP3
 PHP Version:        5.2.10
 Block user comment: N

 New Comment:

I can confirm this bug (on Ubuntu using PHP 5.2.10-2ubuntu6.5 with
Suhosin-Patch 

0.9.7 (cli) (built: May 21 2010 06:30:21) )



Here is a workaround function I made that seems to work:



function stream_get_line_fixed($handle, $length, $ending) {

    // Only allow 3 tries since if there's a genuine failure we don't
want to 

loop forever

    $tries = 3;

    $ret = FALSE;

    while ($ret === FALSE && $tries--) {

      $ret = stream_get_line($handle, $length, $ending);

    }

    return $ret;

  }


Previous Comments:
------------------------------------------------------------------------
[2009-08-31 20:04:38] [email protected]

This is reproduceable on Linux too.







------------------------------------------------------------------------
[2009-08-04 07:44:16] mugeso at mugeso dot com

Description:
------------
When use in combination of stream_get_line and fseek,

reading a file which has only 2 lines without ending on EOF(like below)
does fail.

This happens on only Windows and with only "2lines file without ending
on EOF".





Reproduce code:
---------------
2lines.txt

--

a<CRLF>

b<EOF>



phpfile:

--

<?php

$file = dirname(__FILE__) . '/2lines.txt';

$fp = fopen($file, "rb");

var_dump(stream_get_line($fp, null, "\xd\xa"));

fseek($fp, ftell($fp)); // expected that this does not affect result.

var_dump(stream_get_line($fp, null, "\xd\xa"));

Expected result:
----------------
string(1) "a"

string(1) "b"



Actual result:
--------------
string(1) "a"

bool(false)




------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=49148&edit=1

Reply via email to