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
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 tamporisation de sortie
- ob_get_length() - Retourne la longueur du contenu du tampon de sortie
DrDreistein at dontknow dot at
05-Oct-2011 01:07
mauroasprea+php at gmail dot com
30-Dec-2010 05:10
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);
?>
m227 ( at ) poczta dot onet dot pl
24-Feb-2005 03:53
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.
http://www.francescosaf.altervista.org
08-Feb-2005 11:04
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
