#22682 [Fbk->Opn]: Proplems with fread(), ftell() and fseek() and CRLF newlines
| From: | fbeyer at clickhand dot de | 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