ホームページ >バックエンド開発 >PHPチュートリアル >PHP ネストされた出力バッファーのコード例、PHP ネストされたコード例_PHP チュートリアル

PHP ネストされた出力バッファーのコード例、PHP ネストされたコード例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:54:13870ブラウズ

PHP ネストされた出力バッファー コード例、PHP ネストされたコード例

PHP の出力キャッシュはネストできます。 ob_get_level() を使用してネストレベルを出力します。
テストの結果、cli とブラウザ (PHP5.4) では出力結果が異なることがわかりました。

マニュアルの手順は次のとおりです:

ob_g​​et_level() はデストラクター内で常に 0 を返します。 これは、デストラクターが呼び出される前に出力バッファーのガベージ コレクションがすでに完了しているために発生します

正しく出力するのも非常に簡単です:


コードをコピーします コードは次のとおりです: ob_end_clean();
echo ob_get_level(); //0

本題に戻る:


コードをコピーします コードは次のとおりです: ob_end_clean();

ob_start();
echo 'php1';//ページには出力されません
$a = ob_get_level();
$b = ob_get_contents();//キャッシュされた結果を取得し、変数に代入します
ob_clean();

ob_start();
echo 'php2';//ページには出力されません
$c = ob_get_level();
$d = ob_get_contents();//キャッシュされた結果を取得して変数に代入します
ob_clean();

ob_start();
echo 'php3';//ページには出力されません
$e = ob_get_level();
$f = ob_get_contents();//キャッシュされた結果を取得し、変数に代入します
ob_clean();

echo 'level:'.$a.',output:'.$b.'
';
echo 'level:'.$c.',output:'.$d.'
';
echo 'level:'.$e.',output:'.$f.'
';

結果は以下の通りです:


コードをコピーします コードは次のとおりです: レベル:1、出力:php1
レベル:2、出力:php2
レベル:3、出力:php3

もちろん、特定のレベルのバッファリングをオフにする場合は、次のようにテストしてください:


コードをコピーします コードは次のとおりです: ob_end_clean();

ob_start();
エコー 'php1';
$a = ob_get_level();
$b = ob_get_contents();
ob_clean();

ob_start();
エコー 'php2';
$c = ob_get_level();
$d = ob_get_contents();
ob_end_clean(); // キャッシュをクリアしてキャッシュを閉じる

ob_start();
エコー 'php3';
$e = ob_get_level();
$f = ob_get_contents();
ob_clean();

echo 'level:'.$a.',output:'.$b.'
';
echo 'level:'.$c.',output:'.$d.'
';
echo 'level:'.$e.',output:'.$f.'
';

結果は以下の通りです:


コードをコピーします コードは次のとおりです: レベル:1、出力:php1
レベル:2、出力:php2
レベル:2、出力:php3

http://www.bkjia.com/PHPjc/998551.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/998551.html技術記事 PHP ネストされた出力バッファー コード例、PHP ネストされたコード例 PHP の出力キャッシュはネストできます。 ob_get_level() を使用してネストレベルを出力します。 テストの結果、cli とブラウザーでの出力が確認されました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。