php ob_start は出力制御バッファを開くために使用されます。ob_start をオフにすると、ob_end_clean() 関数を使用してバッファの内容を静かに破棄できます。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
ob_start を終了する方法php?
ob_start — 出力制御バッファを開きます
Description
ob_start(callable $output_callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool
この関数は出力バッファを開きます。出力バッファリングがアクティブ化されている場合、スクリプトはコンテンツ (http ヘッダーを除く) を出力せず、代わりに出力されるコンテンツは内部バッファーに保存されます。
内部バッファの内容は、ob_get_contents()
関数を使用して文字列変数にコピーできます。内部バッファに保存されている内容を出力するには、ob_end_flush()
関数を使用できます。さらに、ob_end_clean()
関数を使用すると、バッファの内容が静かに破棄されます。
警告
一部の Web サーバー (Apache など) は、コールバック関数が呼び出されると、スクリプトの作業ディレクトリを変更します。コールバック関数内で変更して戻すことができます (例: chdir(dirname($_SERVER['SCRIPT_FILENAME'])) 。
出力バッファはスタック可能です。つまり、1 つの ob_start() がアクティブなときに、別の ob_start() を呼び出すことができます。 ob_end_flush() を正しい回数だけ呼び出すようにしてください。複数の出力コールバックがアクティブな場合、出力は常にネストされた順序でフィルター処理されます。
パラメータ
output_callback
オプションパラメータoutput_callback関数を指定できます。この関数は文字列を引数として受け取り、文字列を返します。この関数は、出力バッファがフラッシュ (発行) またはクリーン (ob_flush()、ob_clean() または同様の関数) されたとき、またはリクエストの終了時に出力バッファの内容がブラウザにフラッシュされたときに呼び出されます。 Output_callback が呼び出されると、出力バッファの内容をパラメータとして受け取り、結果として新しい出力バッファを返すことが期待されます。この新しく返された出力バッファの内容はブラウザに送信されます。このoutput_callbackが呼び出し可能な関数ではない場合、この関数はfalseを返します。
次はコールバック署名です:
handler(string $buffer, int $phase = ?): string
buffer
出力バッファの内容。
phase
ビットマスク PHP_OUTPUT_HANDLER_* 定数。
output_callback が false を返した場合、元の入力コンテンツがブラウザに直接送信されます。
このパラメータoutput_callbackは、null値を直接与えることで回避できます。
ob_end_clean()、ob_end_flush()、ob_clean()、ob_flush()、および ob_start() はコールバック関数から呼び出すことはできません。コールバック関数から呼び出された場合、結果の動作は不定です。バッファの内容を削除したい場合は、コールバック関数から "" (空の文字列) を返します。また、コールバック関数から print_r($expression, true) やhighlight_file($filename, true) などの出力バッファリング関数を使用することもできません。
注意: ob_gzhandler() function exists to facilitate sending gz-encoded data to web browsers that support compressed web pages. ob_gzhandler() determines what type of content encoding the browser will accept and will return its output accordingly.
chunk_size
オプションのパラメーター chunk_size が割り当てられている場合、バッファーの長さが chunk_size 以上になる出力操作の後にバッファーがフラッシュされます。デフォルト値 0 は、関数が最後にのみ呼び出されることを意味します。
PHP 5.4.0 より前では、1 は chunk_size を 4096 バイトに設定する特殊な値でした。
flags
flags パラメータは、バッファ上の操作を制御するために使用されるマスク ビットを表します。デフォルトでは、出力バッファーのクリーン、フラッシュ、および削除が許可されており、これは PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE または短縮表現としての PHP_OUTPUT_HANDLER_STDFLAGS を介して明示的に設定するか、失敗した場合に false を返します。
推奨学習: 「
PHP ビデオ チュートリアル」
以上がPHPでob_startを閉じる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。