This is an example of how the stack works:
<?php
//Level 0
ob_start();
echo "Hello ";
//Level 1
ob_start();
echo "Hello World";
$out2 = ob_get_contents();
ob_end_clean();
//Back to level 0
echo "Galaxy";
$out1 = ob_get_contents();
ob_end_clean();
//Just output
var_dump($out1, $out2);
?>
ob_get_contents
(PHP 4, PHP 5)
ob_get_contents — Retourne le contenu du tampon de sortie
Description
string ob_get_contents
( void
)
Retourne le contenu du tampon de sortie sans l'effacer.
Valeurs de retour
Retourne le contenu du tampon de sortie sans l'effacer
ou FALSE, si la tamporisation de sortie n'est pas activée.
Exemples
Exemple #1 Exemple avec ob_get_contents()
<?php
ob_start();
echo "Bonjour ";
$out1 = ob_get_contents();
echo "le monde !";
$out2 = ob_get_contents();
ob_end_clean();
var_dump($out1, $out2);
?>
L'exemple ci-dessus va afficher :
string(8) "Bonjour " string(18) "Bonjour le monde !"
Voir aussi
- ob_start() - Enclenche la temporisation de sortie
- ob_get_length() - Retourne la longueur du contenu du tampon de sortie
mauroasprea+php at gmail dot com ¶
2 years ago
m227 ( at ) poczta dot onet dot pl ¶
8 years ago
if you use ob_start with a callback function as a parameter, and that function changes ob string (as in example in manual) don't expect that ob_get_contents will return changed ob.
it will work as you would use ob_start with no parameter at all. So don't be confused.
DrDreistein at dontknow dot at ¶
1 year ago
i made a simple test which is faster: adding some text in the normal way or by the ob stack:
<?php
$start = microtime(true);
$var = '';
for($i=0 ; $i <= 1000000 ; $i++) {
$var .= ' ';
}
$middle = microtime(true);
ob_start();
for($i=0 ; $i <= 1000000 ; $i++) {
echo ' ';
}
$var = ob_get_contents();
ob_end_clean();
$end = microtime(true);
echo $middle - $start;
echo '<br />';
echo $end - $middle;
?>
Outputs something like this:
0.33658003807068
0.30778789520264
http://www.francescosaf.altervista.org ¶
8 years ago
transfer image, another method (alternative to fsockopen or function socket) :
server(192.168.0.1)
makeimage.php
...........
...........
$nameimage="xxxx.jpg"
$comand=exec("plotvelocity.sh $nameimage $paramater1 $paramater2");
ob_start();
readfile($nameimage);
$image_data = ob_get_contents();
ob_end_clean();
echo $image_data;
unlink($nameimage);
Client (192.168.0.2)
$bild="images/newimage2.gif";
$host="192.168.0.1";
$url=file_get_contents("http://$host/makeimage.php?$querystring");
$fp = fopen("$bild", 'wb');
fwrite($fp, $url);
fclose($fp);
echo '<img src="'.$bild.'">';
naturally you can transfer whichever thing and not only images
