Home » Caching » Cache_Lite » Bug #4236
fread PHP warning on zero length read
Details
| Submitted | 2005-04-27 17:59 UTC |
|---|---|
| From | rick dot overman at gmail dot com |
| Assigned | fab |
| Status | Closed |
| Package | Cache_Lite |
| PHP Version | 4.3.10 |
| OS | Linux |
| Roadmaps | (Not assigned) |
Comments
[2005-04-27 17:59 UTC] rick dot overman at gmail dot com
Description:
------------
In Lite.php line 638
$data = @fread($fp, $length);
Comment from http://www.php.net/fread
-------------------------------------
Somewhere between 4.2.3 and 4.3.9, the behaviour of fread() was changed slightly.
When you ask to fread() 0 bytes of data, it spits out a warning (IMO for no good reason. I think reading 0 bytes is perfectly valid, if not very useful.)
Consequently, to write warning-free code using fread, you'd have to take code like this:
$content=fread($fd,filesize($myfile));
and replace it with this:
$content='';
$length=filesize($myfile);
if($length) {
$content = fread($fd, $length);
}
...or this, depending on your taste:
$length=filesize($myfile);
if($length) {
$content = fread($fd, $length);
} else {
$content='';
}
Reproduce code:
---------------
Read an empty cache.
Expected result:
----------------
No PHP warning if cache empty.
Actual result:
--------------
Produces a PHP Warning.