2
votes

How can I get the "$buffer" value into a string, and use it outside the fopen and fclose functions? Thanks.

$handle = @fopen("http://www.example.com/", "r");

if ($handle) {
    while (!feof($handle)) {
        $buffer = fgetss($handle, 5000);

      echo $buffer ;
    }

    fclose($handle);
}
5
Just remove the echo $buffer; and change the = for the fgetss to .= and it will build up the buffer ($buffer) with the string value.judda
fgetss is kind of useless. It will incorrectly strip_tags when they run over line breaks. So use one of the file_get_contents answers and apply strip_tags afterwards.mario

5 Answers

3
votes
$handle = @fopen("http://www.example.com/", "r");

$buffer = '';
if ($handle) {
    while (!feof($handle)) {
      $buffer .= fgetss($handle, 5000);
    }

    fclose($handle);
}
5
votes

Try file_get_contents() :

$buffer = file_get_contents("/my/file.txt");
1
votes

The easiest way is to use file_get_contents:

$buffer = file_get_contents("http://www.exemple.com");
0
votes

$buffer is itself a string. instead of printing it using echo just concatenate it there and print it or use it with all together after the loop ends.

$buffer = '';
if ($handle) {
    while (!feof($handle)) {
      $buffer .= fgetss($handle, 5000);
    }

    fclose($handle);
}

//print the whole stuff:
echo $buffer;

And if you want to get all the stuffs only no other processing try using:

file_get_contents

0
votes
$handle = @fopen("http://www.example.com/", "r");
$buffers = array();

    if ($handle) {
        while (!feof($handle)) {
            $buffers[] = fgetss($handle, 5000);

        }

        fclose($handle);
    }


print_r ( $buffers );