php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #72804 docs on rewind explicitly says it must be opened by fopen()
Submitted: 2016-08-10 13:25 UTC Modified: 2021-09-13 14:14 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: divinity76 at gmail dot com Assigned:
Status: Open Package: Filesystem function related
PHP Version: Irrelevant OS:
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: divinity76 at gmail dot com
New email:
PHP Version: OS:

 

 [2016-08-10 13:25 UTC] divinity76 at gmail dot com
Description:
------------
---
From manual page: http://www.php.net/function.rewind
---
quote: The file pointer must be valid, and must point to a file successfully opened by fopen().

rewind also works fine on files opened by tmpfile(), so at the very least, the docs should say "opened by fopen() or tmpfile()", if there isn't more. (PS: there is a similar problem with the docs for "ftell")

Test script:
---------------
<?php
$h=tmpfile();
var_dump(ftell($h));
fwrite($h,'PHP');
var_dump(ftell($h));
rewind($h);
var_dump(ftell($h));


Expected result:
----------------
int(0)
int(3)
int(3)

Actual result:
--------------
int(0)
int(3)
int(0)

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2016-08-10 21:13 UTC] requinix@php.net
-Package: Documentation problem +Package: Filesystem function related
 [2016-08-10 21:13 UTC] requinix@php.net
It works on all streams (that support seeking).

fclose, feof, fflush... It looks like most of the functions specifically call out fopen or fsockopen. Given how prevalent streams are, could they warrant their own pseudotype in the manual?
 [2021-07-29 10:57 UTC] cmb@php.net
Hmm, we just got rid of all pseudo types in the manual, and given
that resources are considered obsolete and a lot of work has
already been done to convert many of them to objects, I don't
think that introducing a pseudo type for streams makes much sense
at this point.
 [2021-08-03 14:04 UTC] test at test dot test
@cmb the Iterable pseudo-type is still in the manual, quoting https://www.php.net/manual/en/language.types.iterable.php: Iterable is a pseudo-type introduced in PHP 7.1.
 [2021-09-13 14:14 UTC] cmb@php.net
> the Iterable pseudo-type is still in the manual

Ah, good catch!  Iterable is, however, not a pseudo-type, but
rather a real type, see <https://3v4l.org/qGS61> (it is not an
interface, though).  The docs need to be fixed in that regard.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Dec 27 00:01:30 2024 UTC