#22682 [Opn->Fbk]: Proplems with fread(), ftell() and fseek() and CRLF newlines

From: Date: Thu, 13 Mar 2003 17:55:49 +0000
Subject: #22682 [Opn->Fbk]: Proplems with fread(), ftell() and fseek() and CRLF newlines
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-35523@lists.php.net to get a copy of this message
ID: 22682 Updated by: sniper@php.net Reported By: fbeyer at clickhand dot de -Status: Open +Status: Feedback Bug Type: Filesystem function related Operating System: Windows XP PHP Version: 4CVS-2003-03-13 (stable) New Comment: Are you absolutely SURE you really updated PHP correctly?? We've seen this so many times that it's getting annoying, people report bugs that are fixed, and after couple of comments here, they find out that they really had old version there..usually of php4ts.dll. To be 100% you really get it updated, remove ALL the php related files from your machine, reboot (yes, reboot!), and then install the snapshot. Previous Comments: ------------------------------------------------------------------------ [2003-03-13 11:41:40] fbeyer at clickhand dot de I have found this bug in 4.3.0, searched matching bug reports and they said the bug is fixed in the latest stable CVS snap. I have downloaded and installed today's latest version, the fix is mentioned in the news.txt, but the bug is still there. Here are my test files for a short reproducing script: file test.txt: (saved in dos format, ie. newlines are CRLF/\r\n): ------------------------------ This is a test file in win32 / dos format ie. lines end with CRLF resp. \r\n ------------------------------ file test.php ------------------------------ <?php $fp = fopen('test.txt', 'r'); $contents = fread($fp, 30); fseek($fp, ftell($fp)); $contents .= fread($fp, 30); echo $contents; echo "\n\n"; var_dump(strpos($contents, "\r")); ?> ------------------------------ Output: ------------------------------ This is a test file in win32 // dos format ie. lines end wit bool(false) ------------------------------ It can be seen that fseek() or ftell() don't work as expected: the '/' character is read twice. Furthermore, fread() doesn't return \r characters. I also have tested this for fgetc() - \r is not read. A strange thing is that this bug doesn't occurr in the newest php5/ze2 snapshot. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=22682&edit=1

« previous php.bugs (#35523) next »