#39433 [Opn->Bgs]: fgets doesn't work as expected
| From: | tony2001@php.net | Date: | Wed, 08 Nov 2006 17:52:20 +0000 |
| Subject: | #39433 [Opn->Bgs]: fgets doesn't work as expected | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-104643@lists.php.net to get a copy of this message | ||
ID: 39433
Updated by: tony2001@php.net
Reported By: michael dot virnstein at brodos dot de
-Status: Open
+Status: Bogus
Bug Type: Streams related
PHP Version: 4.4.4
New Comment:
http://php.net/fgets
Returns a string of up to length - 1 bytes read from the file pointed
to by handle.
It works this way since ages.
Previous Comments:
------------------------------------------------------------------------
[2006-11-08 17:26:24] michael dot virnstein at brodos dot de
Description:
------------
i recognized a change to fgets function, which i think is a bug.
When i try to fetch data from a file handle via fgets, which has been
opened via fopen for a local file or url, the lenght parameter now has
to be supplied as length+1 to get the desired result.
E.g. fgets($fp, 1) returns false now, fgets($fp, 2) returns the first
letter, fgets($fp, 3) returns the first two letters ...
This bug is present in 4.4.4 and 5.1.x, couldn't test 5.2 yet.
Reproduce code:
---------------
<?php
$fp = fopen('http://www.php.net', 'r')
or die ('could not connect');
var_dump(fgets($fp, 1)); // returns false
var_dump(fgets($fp, 2)); // returns first letter
fclose($fp);
?>
Expected result:
----------------
- first var_dump should return first letter
- second var_dump should return next two letter
Actual result:
--------------
- first var_dump returns false
- second var_dump returns first letter
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39433&edit=1