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

From: Date: Mon, 28 Apr 2003 14:18:51 +0000
Subject: #22682 [Fbk->Opn]: Proplems with fread(), ftell() and fseek() and CRLF newlines
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-38564@lists.php.net to get a copy of this message
ID: 22682 User updated by: fbeyer at clickhand dot de Reported By: fbeyer at clickhand dot de -Status: Feedback +Status: Open Bug Type: Filesystem function related Operating System: Windows XP -PHP Version: 4CVS-2003-03-13 (stable) +PHP Version: 4CVS-2003-04-28 (stable) New Comment: No, unfortunately, the result is the same. But I've found out that the problem only occurs if PHP is run as an apache module (I'm currently using 1.3.20). The CGI executable works as expected - this is why I mentioned that the bug doesn't occur in the PHP5 snapshot since I've installed it using CGI. Previous Comments: ------------------------------------------------------------------------ [2003-04-23 05:00:26] sniper@php.net Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [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 (#38564) next »