0

PHPheader関数には、ブラウザーを指定されたURLにリダイレクトすることを拒否する前に、ブラウザーに出力されるテキストまたはバイナリの量に制限がありますか?

ブラウザに出力してからリダイレクトを実行できることに気づきましたがheader('Location: $url'); exit();、一定量を出力した後、このメッセージを拒否して出力するように見えますか?

Zend認定の調査中にこれを示唆するものに出くわしたことがないので、文書化されていない機能であるかどうか疑問に思いました。

警告:ヘッダー情報を変更することはできません-/var/www/vhosts/dev/dev_crmpicco/includes/Rangers.incで(/var/www/vhosts/dev/dev_crmpicco/co.php:935で開始された出力)によって既に送信されたヘッダー。 1701行目のphp

4

2 に答える 2

2

答えはheader()マニュアルにあります

通常のHTMLタグ、ファイル内の空白行、またはPHPから実際の出力を送信する前に、header()を呼び出す必要があることに注意してください。include、require、関数、または別のファイルアクセス関数を使用してコードを読み取り、header()が呼び出される前に出力されるスペースまたは空の行があることは非常に一般的なエラーです。単一のPHP/HTMLファイルを使用する場合にも同じ問題が存在します。

ヘッダーを設定する前にテキストを出力することはできません。ヘッダーが失敗する前に特定のバイト数を出力できると思われる場合は、何でもエコーできる出力バッファリングセットがあるかもしれません。

于 2012-11-02T14:04:09.983 に答える
0

答えはありません。おそらく見られるのは、出力バッファリングが行われていることです。バッファは、ヘッダーの前に何度かフラッシュされます。php.iniでデフォルトの出力バッファリングを使用することも、ob_start()で具体的に使用することもできます。

于 2012-11-02T14:08:27.393 に答える