ID: 43522 Updated by: [EMAIL PROTECTED] Reported By: tylera at iproduction dot com -Status: Open +Status: Closed Bug Type: Streams related Operating System: Gentoo Linux, Win32, Solaris PHP Version: 5.2.5 New Comment:
Thank you for your bug report. This issue has already been fixed in the latest released version of PHP, which you can download at http://www.php.net/downloads.php Previous Comments: ------------------------------------------------------------------------ [2007-12-08 20:25:55] [EMAIL PROTECTED] Simple patch for it: http://ecl.zoone.com.br/etc/patches/bug43522.patch ------------------------------------------------------------------------ [2007-12-06 17:16:21] tylera at iproduction dot com Description: ------------ Calling stream_get_line may eat additional characters when reading a long line. If the delimiter is not encountered, a number of additional characters are removed from the stream and are not returned with the next call to stream_get_line. For some unknown reason, adding \r to the delimiter makes it work just fine. Reproduce code: --------------- <?PHP // 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ $fp = fopen('test.php', 'r'); // Open myself DoTest($fp, 'ZZZ'); // Removes 3 characters DoTest($fp, "\r"); // Doesn't break with \r for some reason function DoTest($fp, $delim) { echo "Delim: " . urlencode($delim) . "\n"; rewind($fp); echo " " . stream_get_line($fp, 10, $delim) . "\n"; echo " " . stream_get_line($fp, 10, $delim) . "\n"; } Expected result: ---------------- Delim: ZZZ <?PHP // 1 234567890A Delim: %0D <?PHP // 1 234567890A Actual result: -------------- Delim: ZZZ <?PHP // 1 567890ABCD Delim: %0D <?PHP // 1 234567890A ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43522&edit=1
