実際の使用中
たとえば、次のエラーは、PHP がヘッダー情報を変更できないことを警告します:
警告: ヘッダー情報を変更できません - ヘッダーはすでに送信されています
PHP プログラムを書き始めたばかりのときに、これに遭遇した可能性があります。 . この問題に遭遇しました。文字通り、これは次のことを意味します:
警告: ヘッダー情報は変更できません - ヘッダーはすでに送信されています。 。 。
それでは、この PHP はヘッダー情報を変更できないという警告が表示される理由は何でしょうか?
つまり、header() 関数または setcookie() 関数の前に次のような出力コンテンツがある場合です。
header("content-type:text/html;charset:utf-8");
<ol class="dp-xml"><li class="alt"> <span class="tag"><</span> ?PHP </li><li><span>ob_start(); </span></li><li class="alt"><span>echo "dfdfd"; </span></li><li><span>//注意不能卸载ob_start() 前面 </span></li><li class="alt"><span>header("content-type:text/<br />html;</span><span class="attribute">charset</span><span>=</span><span class="attribute-value">utf</span><span>-8"); </span></li><li><span>setcookie(); </span></li><li class="alt"><span class="tag">?></span><span> </span> </li></ol>
出力バッファーを送信 (出力バッファリング)
ob_end_flush()
出力バッファー (出力バッファリング) を送信し、出力バッファリングメカニズムを無効にします。 ob_end_clean()出力バッファを送信せずにクリアし、出力バッファリングを無効にします。
ob_get_contents()
現在の出力バッファを文字列に返します。スクリプトによって出力された出力を処理できます。 ob_get_clean()現在の出力バッファを文字列に返します。スクリプトによって発行された出力を処理し、出力バッファリング メカニズムを無効にすることができます。
PHP マニュアルを参照できる関数もいくつかあります。 Search ob_
<ol class="dp-xml"><li class="alt"> <span class="tag"><</span> ?PHP </li><li><span>ob_start(); </span></li><li class="alt"><span>print "Here's a pretty dumb way <br />to calculate the length of a string."; </span></li><li><span>$</span><span class="attribute">length</span><span> = </span><span class="attribute-value">strlen</span><span>(ob_get_content()); </span></li><li class="alt"><span>ob_end_clean(); </span></li><li><span class="tag">?></span><span> </span> </li></ol>
PHP がヘッダー情報を変更できない例は、文字列の長さを決定する非常に非効率的な方法を示しています。 strlen() 関数を単に使用するのではなく、最初に出力バッファリング メカニズムを有効にし、文字列を出力してから、出力バッファの長さを決定します。最後に出力バッファをクリアし (送信ではなく)、出力バッファリング メカニズムを無効にします。
http://www.bkjia.com/PHPjc/445932.html
true
http://www.bkjia.com/PHPjc/445932.html