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

PHP は ob_start() を使用して出力と選択出力をクリアします

小云云
小云云オリジナル
2018-01-19 09:37:22953ブラウズ

この記事では主に、PHP で ob_start() を使用して出力と選択的な出力をクリアする方法について説明します。これは優れた参考値であり、皆様のお役に立てれば幸いです。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

1. 背景

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

2. ob_start()

1. 概念:

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

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

PHPマニュアルより: http://php.net/manual/zh/function.ob-start.php

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();

Results: 12

3,

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

Results: 2

4,

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

Results: 2 1

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

4. よく使用される場所

この関数は、ページの静的化によく使用され、レンダリングされたページは入力キャッシュを通じてファイルに直接書き込まれます。存在するかどうかで、ユーザーがこの訪問中にページを再レンダリングする必要があるかどうかを判断できます。nosql を使用してレンダリングされたページを保存する具体的な使用方法は、人によって異なります。好きな方を。

上記は私が自分で行った簡単なテストです。必要に応じて、PHP マニュアルを参照して、さらにテストを実行できます。

関連する推奨事項:

ob_start() が使用されていない場合に PHP の ob_end_flush() メソッドを使用できますか?

PHP を使用して PHP 関数 ob_start() がブラウザ キャッシュを制御する方法の詳細な説明

ob_start() ブラウザのキャッシュを制御する_PHP チュートリアル

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

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