|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-08-18 13:07 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Dec 04 08:00:01 2025 UTC |
Description: ------------ When using fseek() to specify an offset larger than or equal to the file size, function feof() could not identify the EOF flag either in a class method or a function, it always return FALSE. But it works outside functions and classes. There are same problems in version 4.3.11, 4.4.0 and 5.0.4 Reproduce code: --------------- <?php class FileHandler { var $handle = null; function eof($file, $pos) { $this->handle = fopen($file, "r"); fseek($this->handle, $pos); echo "Is EOF: ", (feof($this->handle)) ? "YES" : "NO"; } function eof2($file, $pos) { $handle = fopen($file, "r"); fseek($handle, $pos); echo "Is EOF: ", (feof($handle)) ? "YES" : "NO"; } } function eof3($file, $pos) { $handle = fopen($file, "r"); fseek($handle, $pos); echo "Is EOF: ", (feof($handle)) ? "YES" : "NO"; } // my file has 32 chars only $handler = new FileHandler(); $handler->eof($file, 320); $handler->eof2($file, 320); eof2($file, 320); ?> Expected result: ---------------- Is EOF: YES Is EOF: YES Is EOF: YES Actual result: -------------- Is EOF: NO Is EOF: NO Is EOF: NO