以下のエディターは、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();結果: 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 フレームワークの構築において重要な役割を果たします。レンダリングされたページは、入力キャッシュを介してファイルに直接書き込まれます。このようにして、ファイルが存在するかどうかを判断して、ユーザーがこの訪問中にページを再レンダリングする必要があるかどうかを判断できます。大規模なページにも適用できます。プロジェクトを作成し、nosql を使用してそれを保存します。レンダリングされたページの具体的な使用法は、人によって異なります。好みによって異なります。
上記は、私が自分で行った簡単なテストです。必要に応じて、PHP マニュアルを参照して、さらにテストを実行できます。
#興味があるかもしれない記事:
phpで実装したmongoDBシングルトンモード操作クラスの関連説明
tp5(thinkPHP5)のmongoDBデータベース操作方法の詳細説明
以上がPHP は ob_start() を使用して出力をクリアする方法と選択出力を説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。