useful recursive PHP functions

recursively ...

PHP Manual for

fread

(PHP 3, PHP 4 )

fread -- Binary-safe file read

Description

string fread ( resource handle, int length)

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.

<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Warning

On systems which differentiate between binary and text files (i.e. Windows) the file must be opened with 'b' included in fopen() mode parameter.

<?php
$filename
= "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Warning

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.example.com/", "rb");
$contents = "";
do {
    
$data = fread($handle, 8192);
    if (
strlen($data) == 0) {
        break;
    }
    
$contents .= $data;
} while (
true);
fclose($handle);
?>

Note: The example above has better performance than the traditional approach using while(! feof()), as we are saving the overhead of a function call per iteration.

Note: If you just want to get the contents of a file into a string, use file_get_contents() as it has much better performance than the code above.

See also fwrite(), fopen(), fsockopen(), popen(), fgets(), fgetss(), fscanf(), file(), and fpassthru().

© 2010 lixlpixel