ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでのバッファーの制御

PHP_PHP チュートリアルでのバッファーの制御

WBOY
WBOYオリジナル
2016-07-15 13:23:06864ブラウズ

PHP4.0 は、出力バッファリング関数のコレクションを提供します。出力バッファリングのサポートにより、圧縮されたバッファーの周囲に関数をラップする関数を作成できます。 PHP4 の出力バッファリングのサポートにより、HTML 本文が出力されるかどうかに関係なく、HTML ヘッダー情報を保存できます。ただし、PHPではヘッダー情報((header()、コンテンツタイプ、Cookie)はバッファリングを使用しません。
PHPを使用する過程で、ヘッダーと

setcookieの使用が避けられません。関数を使用すると、これら 2 つの関数はファイル ヘッダー情報の一部をブラウザーに送信しますが、これら 2 つの関数を使用する前に出力 (スペース、キャリッジ リターン、ライン フィードなどの空の出力を含む) がある場合は、エラーが表示されます。プロンプト情報は次のとおりです: 「ヘッダーはすべての送信準備ができました」! いくつかのバッファー制御関数が PHP 4.0 に追加されました。これらの関数を使用すると、多くの問題を解決できます。領域内のコンテンツを出力し、バッファーを削除します。この関数はよく使用され、非常に効率的です。
ob_start void ob_start(void) バッファーがアクティブ化されると、PHP プログラムからのファイル以外のヘッダー情報はすべて送信されなくなります。代わりに、バッファの内容を出力するには、ob_end_flush() または ob_end_clean() を使用します。
ob_g​​et_contents string ob_get_contents(void) この関数は、次の内容を返します。内部バッファの内容 (出力バッファがアクティブでない場合は FALSE を返します)
ob_g​​et_length int ob_get_length(void) 出力バッファがアクティブでない場合は内部バッファの長さを返します。 FALSE を返します。
ob_end_flush void ob_end_flush(void) 内部バッファの内容をブラウザに送信し、出力バッファを閉じます。
ob_end_clean void ob_end_clean (void) この関数は内部バッファの内容を削除します。内部バッファの内容は出力されません!
ob_implicit_flush void ob_implicit_flush ([int flag]) Perl を使用したことがある人なら誰でも、$ |=x の意味、この文字列はバッファを開いたり閉じたりすることができ、ob_implicit_flush 関数はデフォルトでは、バッファを閉じて絶対出力を開きます。
1. ファイル ヘッダーの情報の送信中にエラーが発生したことを防ぐために、バッファー制御関数を使用します。
//PHP プロンプト
ob_start(); //バッファを開きます
echo "Welcome /n"; //出力
header("location:next.php"); //ブラウザを次の .php にリダイレクトします?>
ob_start が削除された場合、PHP はファイルの 4 行目でエラー メッセージを表示します。ただし、ob_start を追加すると、開いたときにエラーは表示されません。バッファ、echo 以降の文字はブラウザには出力されませんが、サーバーのバッファに残ります。flush または ob_end_flush を使用するまで出力されないため、ファイル ヘッダーが出力されたというエラーは発生しません。 //PHP提示符
2. 出力を保存します (これは非常に古典的な使用法です)。
関数の出力結果など、クライアントの画面出力情報を知りたいとします。この出力情報はクライアントごとに異なります。関数
を使用してサーバーの設定情報を取得できますが、phpinfo() 関数の出力を保存したい場合はどうすればよいでしょうか?バッファ制御がない前は全く方法がなかったとも言えますが、バッファ制御があれば簡単に解決できます。

ob_start(); // バッファをオープンします
phpinfo(); // phpinfo 関数を使用します
$info=ob_get_contents(); // バッファの内容を $info に割り当てます phpinfo(); ?>$file= fopen(' phpinfo.txt','w'); // ファイル phpinfo.txt を開きます
fwrite($file,$info); // phpinfo.txt に情報を書き込みます
fclose($file); file phpinfo.txt
?>
上記の方法を使用すると、以前は不可能だったかもしれない、さまざまなユーザーの phpinfo 情報を保存できます。同様に、通常の方法では完了するのが難しいタスクを保存するためにバッファメソッドを使用できます。これは、実際には一部の「処理」を「関数」に変換する方法です。





http://www.bkjia.com/PHPjc/446895.html
www.bkjia.com

本当http://www.bkjia.com/PHPjc/446895.html技術記事 PHP4.0 は、出力バッファリング関数のコレクションを提供します。出力バッファリングのサポートにより、圧縮されたバッファーの周囲に関数をラップする関数を作成できます。 PHP4 の出力バッファリングのサポートにより、HTML ヘッダー情報を...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。