#22682 [Opn]: Proplems with fread(), ftell() and fseek() and CRLF newlines
| From: | wez@php.net | Date: | Mon, 28 Apr 2003 17:31:39 +0000 |
| Subject: | #22682 [Opn]: Proplems with fread(), ftell() and fseek() and CRLF newlines | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-38635@lists.php.net to get a copy of this message | ||
ID: 22682
Updated by: wez@php.net
Reported By: fbeyer at clickhand dot de
Status: Open
Bug Type: Filesystem function related
Operating System: Windows XP
PHP Version: 4CVS-2003-04-28 (stable)
New Comment:
Related to Bug #22497
Previous Comments:
------------------------------------------------------------------------
[2003-04-28 09:18:51] fbeyer at clickhand dot de
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.
------------------------------------------------------------------------
[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