ホームページ  >  記事  >  バックエンド開発  >  PHP ob_start()関数の性能ポイントを詳しく解説

PHP ob_start()関数の性能ポイントを詳しく解説

WBOY
WBOYオリジナル
2016-06-13 13:02:07922ブラウズ

PHP ob_start()関数の要点を詳しく解説
PHP 関数は非常に幅広い応用範囲を持っており、継続的に練習することでこれらの関数がもたらす恩恵を実感することができます。 PHP ob_start() 関数の機能的特徴を詳しく見てみましょう。

たとえば、サーバーとクライアントの設定情報を使用できますが、この情報はクライアントによって異なります。phpinfo() 関数の出力を保存したい場合はどうすればよいでしょうか。バッファ制御が存在する前は何もできませんでしたが、バッファ制御を使用すると、それを簡単に解決できます。

1. < ?php
2. ob_start();
3. phpinfo(); //phpinfo 関数を使用します
4. $info=ob_get_contents() // バッファーの内容を取得し、$info に割り当てます
5. $file= fopen ('info.txt','w'); //ファイル info.txt を開きます
6. fwrite($file,$info); //info.txt に情報を書き込みます
7. fclose( $ file); // ファイル info.txt を閉じます
8. ?>

上記の方法を使用すると、以前は不可能だったかもしれません。実は上記は一部の「処理」を「関数」に変換する方法なのです!

「これは本当に同じことですか? 他に用途はありますか?」と疑問に思う人もいるかもしれません。もちろん、たとえば、作者のフォーラムで強調表示されている PHP 構文はこれに関連しています (PHP のデフォルト構文)。関数が直接出力され、呼び出されるたびに結果が表示されると、CPU の無駄になります。作者のフォーラムでは、構文強調表示関数によって表示された結果を保持するためにバッファーを制御する方法を使用しています。 )。

おそらく、PHP の ob_start() 関数の機能をある程度理解できたのではないでしょうか。上の例は単純に見えるかもしれませんが、実際には、ob_start() の使用の重要なポイントをマスターしたことになります。

<1>。PHP ob_start() 関数を使用してブラウザのキャッシュを開きます。これにより、flush()、ob_end_flush() (またはプログラム) を呼び出す前にキャッシュの内容が出力されなくなります。が実行されます)。

<2> これで、出力コンテンツの後に header、setcookie、session を使用できるという利点がわかりました。これは、PHP ob_start() 関数の優れた機能です。 ob_start のパラメータを取得し、キャッシュの書き込み後に ob_start("ob_gzhandler"); などのコマンドを自動的に実行します。最も一般的な方法は、ob_get_contents() を使用してキャッシュの内容を取得し、それを処理することです。 ..

. 処理が完了すると、flush()、ob_end_flush()、プログラム実行完了後の自動出力など、さまざまなメソッドを使用できます。もちろん、ob_get_contents() を使用している場合は、出力メソッドを自分で制御する必要があります。

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