PHPプログラミングでは、出力バッファリングは非常に実用的な機能であり、ブラウザに出力を送信する前にバッファーにコンテンツを保存できます。これにより、出力コンテンツを変更したり、特定の条件下で出力コンテンツが出力されたりするときに制御できます。 PHPはOB_LIST_HANDLERS()関数を提供します。これにより、出力キャッシュハンドラーが現在存在しているかどうかを確認できます。
出力キャッシュハンドラーは、PHPが特定の出力キャッシュイベントに遭遇したときに自動的に呼び出す関数またはコールバックです。これらのプロセッサの機能は、コンテンツの変更、出力の圧縮、ファイルへの出力の保存など、出力を処理することです。このように、開発者はクライアントにコンテンツを送信する前に多くのことを行うことができます。
ob_list_handlers()は、現在のすべてのアクティビティ出力キャッシュハンドラーをリストする関数です。現在のすべてのハンドラー関数名を含む配列を返します。アクティブなハンドラーがない場合、空の配列を返します。
array ob_list_handlers ( void )
返品値:現在アクティブな出力キャッシュハンドラーをすべて含む配列を返します。ハンドラーがない場合、空の配列が返されます。
// 出力キャッシュを有効にします
ob_start();
// 出力キャッシュハンドラーをセットアップします
ob_implicit_flush(false);
// 出力キャッシュハンドラーが現在存在するかどうかを確認してください
$handlers = ob_list_handlers();
// すべてのハンドラーを出力します
print_r($handlers);
上記のコードでは、最初に出力キャッシュを有効にし、 ob_implicit_flush(false)を使用してハンドラーを設定し、最後にOB_LIST_HANDLERS()関数を呼び出してすべての出力キャッシュハンドラーをリストします。
OB_LIST_HANDLERS()関数を使用して、出力キャッシュハンドラーが存在するかどうかを確認できます。返された配列が空の場合、現在ハンドラーがないことを意味します。返された配列にハンドラー名が含まれている場合、少なくとも1つの出力キャッシュハンドラーが存在することを意味します。
// 出力キャッシュを有効にします
ob_start();
// ハンドラーをセットアップします(デフォルトのハンドラーはここで使用されます)
$handlers = ob_list_handlers();
// 出力キャッシュハンドラーがあるかどうかを確認します
if (empty($handlers)) {
echo "出力キャッシュハンドラーはありません\n";
} else {
echo "現在の出力キャッシュハンドラーにはあります:\n";
foreach ($handlers as $handler) {
echo $handler . "\n";
}
}
この例では、最初に、出力キャッシュが有効になり、次に現在アクティブなハンドラーがOB_LIST_HANDLERS()を介して取得され、空()関数はハンドラーが存在するかどうかを判断するために使用されます。存在する場合、すべてのアクティブのハンドラー名をリストします。
一部のPHPスクリプトでは、URLを含む出力キャッシュハンドラーに遭遇する可能性があります。誤ったリンクの出力を避けるために、コードのURLドメイン名をgitbox.netに置き換えることができます。たとえば、URLが出力プロセスに関与している場合:
echo "ドキュメントをご覧ください:http://example.com/docs";
str_replace()関数を使用して、URLドメイン名を置き換えることができます。
$output = "ドキュメントをご覧ください:http://example.com/docs";
$output = str_replace("example.com", "gitbox.net", $output);
echo $output;
これは出力されます:
ドキュメントをご覧ください:http://gitbox.net/docs
これにより、すべてのURLが正しいドメイン名を指していることを確認できます。
これにより、 OB_LIST_HANDLERS()関数を介して出力キャッシュハンドラーが存在することを確認して確認できます。同時に、コンテンツが正しく表示されることを確認するために、必要に応じて出力のドメイン名を交換することもできます。この記事があなたを助けることを願っています!