ホームページ  >  記事  >  バックエンド開発  >  PHPでob_start()を使用して出力と選択的な出力をクリアする方法

PHPでob_start()を使用して出力と選択的な出力をクリアする方法

不言
不言オリジナル
2018-06-19 09:32:242269ブラウズ

PHP で ob_start() を使用して出力と選択的な出力をクリアする方法に関する記事を共有します。この記事は参考になるので、皆さんのお役に立てれば幸いです。

1. 背景

カプセル化されたメソッドを呼び出すため、不要な戻り値が含まれるコードがあります。これらの戻り値を非表示にするためにどのように対処するか。変数をクリアしたほうが良いのではないかと言う人もいるでしょう。しかし、この戻り値をクリアできない場合はどうなるでしょうか?

2. ob_start()

1. 概念:

この関数は、出力バッファ。出力バッファリングがアクティブ化されている場合、スクリプトはコンテンツ (http ヘッダーを除く) を出力せず、代わりに出力されるコンテンツは内部バッファーに保存されます。

内部バッファの内容は、ob_get_contents() 関数を使用して文字列変数にコピーできます。内部バッファに格納されている内容を出力するには、ob_end_flush() 関数を使用します。さらに、ob_end_clean() 関数を使用すると、バッファの内容が黙って破棄されます。

2. バッファの基本的な使用法

//打开缓冲区
ob_start();
//清除缓冲区中的内容
ob_clean();
//冲刷出(送出)输出缓冲区内容并关闭缓冲
ob_end_flush();

3. 基本的なテスト

1、

echo '1';
ob_start();
echo '2';
ob_clean();

結果: 1

説明: これが最も単純です使用方法は、コンテンツを出力したくない外部に ob_start(); を追加し、バッファ内のコンテンツをクリアすることで、使用シナリオを実現します。出力したいものを選択して出力できます。アウトプットしたくないものは捨てましょう。

2、

echo '1';
ob_start();
echo '2';
//输出缓冲区
ob_end_flush();

結果: 12

3、

//打开缓冲区
ob_start();
echo '1';
//清除缓冲区,此时不会输出1
ob_clean();
//输出缓冲区。但是因为上面已经清除过缓冲区了,所以不会输出 1
ob_end_flush();
echo '2';

結果: 2

#4,

ob_start(); //打开缓冲区
echo '1'; 
$a = ob_get_contents(); //输出缓冲区内容到$a,相当于赋值给$a
ob_clean();   //这里清除缓冲区内容
echo '2';    //输出2
echo $a;    //输出$a

結果: 2 1

説明: ob_get_contents(); ここではバッファの内容を取得します。取得した内容を変数に代入できるので、バッファをクリアして変数を出力しても正常に1を出力できます。

4. よく使用される場所

この関数は、マイクロ Web フレームワークの構築において重要な役割を果たします。このように、レンダリングされたページは、入力キャッシュを通じてファイルに直接書き込まれ、ユーザーがこの訪問中にページを再レンダリングする必要があるかどうかを判断できます。レンダリングされたページの具体的な使用方法は人によって異なります。好みによって異なります。

上記は私が自分で行った簡単なテストです。必要に応じて、さらにテストを実行できます。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP の長い URL と短い URL を実装する方法

Yunpian.net を呼び出す PHP を実装する方法送信するインターフェイス ショートメッセージ

以上がPHPでob_start()を使用して出力と選択的な出力をクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。