ID:               24001
 Updated by:       [EMAIL PROTECTED]
 Reported By:      eric at pitte dot de
 Status:           Bogus
 Bug Type:         Filesystem function related
 Operating System: Suse 8.2
 PHP Version:      4.3.2
 New Comment:

P.S. - About a week ago I expanded the opening note which
[EMAIL PROTECTED] quotes, however the manual has not been rebuilt
yet.

    fread() reads up to length bytes from 
    the file pointer referenced by handle. 
    Reading stops when length bytes have 
    been read, EOF (end of file) is reached, 
    or (for network streams) when a packet 
    becomes available, whichever comes first. 



Previous Comments:
------------------------------------------------------------------------

[2003-07-07 14:26:43] [EMAIL PROTECTED]

Also from the manual:

Note: When reading from network streams or pipes, such as those
returned when reading remote files or from popen() and proc_open(),
reading will stop after a packet is available. This means that you
should collect the data together in chunks as shown in the example
below. 

<?php
$handle = fopen ("http://www.php.net/";, "rb");
$contents = "";
do {
    $data = fread ($handle, filesize ($filename));
    if (strlen($data) == 0) {
        break;
    }
    $contents .= $data;
}
fclose ($handle);
?>
 


------------------------------------------------------------------------

[2003-07-07 13:53:28] phpbug at digvid dot info

The documentation at http://uk.php.net/manual/en/function.fread.php
states:

Reading stops when length bytes have been read or EOF (end of file)
reached, whichever comes first.

This does not seem to be the case.

Ian

------------------------------------------------------------------------

[2003-06-03 16:08:35] [EMAIL PROTECTED]

P.S. - To add to derick's response: 

The reason the file read is comming out specifically at 2.7KB is that
the default chunksize for http streams is 4KB.  The "missing" 1.3KB is
likely buried in the response headers.

------------------------------------------------------------------------

[2003-06-03 16:06:36] eric at pitte dot de

yes it's working on this way. Thank you

strange on my older PHP version the old syntax worked properly.

------------------------------------------------------------------------

[2003-06-03 15:55:07] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

fread() uses the MAXIMUM length as you specify, but it may chunk the
input as it likes.

Use something like:

$contents = \'\';
while (($data = fread($fp, 2048)) !== \"\") {
      $contents .= $data;
}

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/24001

-- 
Edit this bug report at http://bugs.php.net/?id=24001&edit=1

Reply via email to