ホームページ  >  記事  >  バックエンド開発  >  ob_get_contents()、ob_end_clean()、ob_start()の具体的な使い方を詳しく解説_PHPチュートリアル

ob_get_contents()、ob_end_clean()、ob_start()の具体的な使い方を詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:03:48832ブラウズ

ob_g​​et_contents();
ob_end_clean();
ob_start()

ob_start() を使用して、出力をブラウザではなくバッファに出力します。
次に、ob_get_contents を使用してバッファー データを取得します。
ob_start() はサーバー上のバッファを開き、すべての出力を保存します。そのため、echo が使用されるたびに、プログラムが終了するか、ob_flush() を使用して終了されるまで、出力はバッファーに追加されます。次に、サーバー内のバッファの内容がブラウザに送信され、ブラウザによって解析されて表示されます。

関数 ob_end_clean は、バッファーの内容をクリアしてバッファーを閉じますが、内容を出力しません。
このとき、バッファの内容を取得するには、ob_end_clean() の前で関数 ob_get_contents() を使用する必要があります。
この場合、ob_end_clean()を実行する前に内容を変数に保存し、ob_end_clean()の後にその変数を操作することができます。

これはEGです:
ob_start(); // buf1
echo ' multiple ';
ob_start(); // buf2
echo ' バッファは動作します ';
$buf2 = ob_get_contents();
ob_end_clean() ;
$buf1 = ob_get_contents();
ob_end_clean();
echo $buf1;
echo '
';
echo $buf2;
ob_g​​et_contents

(PHP 4, PHP 5)
ob_g​​et_contents -- 出力バッファの内容を返します
Description
string ob_get_contents ( void )
これは、出力バッファの内容を返すか、出力バッファリングがアクティブでない場合は FALSE を返します。
を参照してください。 ob_start() と ob_get_length() も同様です。
コールバック関数をパラメーターとして ob_start を使用し、その関数が (マニュアルの例のように) ob 文字列を変更する場合、ob_get_contents が変更された ob を返すとは期待しないでください。
それは機能します。パラメータをまったく指定せずに ob_start を使用するのと同じなので、混乱しないでください。
イメージの転送、別のメソッド (fsockopen または関数ソケットの代替) :
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);
クライアント (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 '';
当然、画像だけでなく何でも転送できます
ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)
ob_g​​et_clean -- 現在のバッファーの内容を取得し、現在の出力バッファーを削除します
説明
string ob_get_clean ( void )
これは、出力バッファーの内容を返し、出力バッファリングを終了します。出力バッファリングがアクティブでない場合、ob_get_clean() は基本的に ob_get_contents() と ob_end_clean() の両方を実行します。

例 1. 単純な ob_get_clean() の例

コードをコピーします コードは次のとおりです:
ob_start();
echo "Hello World";
$out = ob_get_clean();
$out = strto lower($out);
var_dump($out);
?>

この例では次のように出力されます: string(11) "hello world"
ob_start() と ob_get_contents( も参照してください) ).
以下の関数はエラーをキャッチしないことに注意してください。したがって、ob_* 呼び出しの前に @ をスローしてください
PHP4
コードをコピー コードは次のとおりです:
if (!function_exists("ob_get_clean")) {
function ob_get_clean() {
$ob_contents = ob_get_contents();
ob_end_clean();
return $ob_contents ;
}
}
?>

?

http://www.bkjia.com/PHPjc/327818.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327818.html技術記事 ob_get_contents(); ob_end_clean(); ob_start() 出力をブラウザではなくバッファに出力するには、ob_start() を使用します。 次に、ob_get_contents を使用してバッファ データを取得します。 ob_st...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。