[PHP-users 31654] Re: header関数について

goungoun gounx2 @ gmail.com
2007年 3月 9日 (金) 15:35:51 JST


こんにちは。

# スクリプトは適当にかいてるので、もし間違えていたらすいません。

On Fri, 9 Mar 2007 14:30:10 +0900
"Minoru.Harada" <system @ acekoeki.co.jp> wrote:

> もう一度プログラムを見直してみましたが、文字やスペースを出力し
> ている箇所はないようです。
> エラー表示されている44行目はheader関数のところです。
> 
> 具体的に「何が出力されているのか」の確認するとはどのように行えばいいのでしょ
> うか?

↓基本はこれらの違いが分かることかな。

test1.php
------------------------------------------------------
<?php
header("Location: http://hogehoge/hogehoge.html");
?>
------------------------------------------------------

test2.php
------------------------------------------------------
<?php
echo "headerのまえに何か出力";
header("Location: http://hogehoge/hogehoge.html");
?>
------------------------------------------------------

test3.php
------------------------------------------------------
<?php
echo "headerのまえに何か出力";
exit();
header("Location: http://hogehoge/hogehoge.html");
?>
------------------------------------------------------

でもって、includeが絡んでくるとどうなるか

↓これを用意しておいて

test4.php
--------------------------------------
<?php
?>
phpスクリプトの後に何か(=空白など含む)出力
--------------------------------------

↓インクルードしてどうなるかとか、

test5.php
--------------------------------------
<?php
require_once("test4.php");
header("Location: http://hogehoge/hogehoge.html");
?>
--------------------------------------

で、headerの前にexitしてみるとどうなるかとか

test6.php
--------------------------------------
<?php
require_once("test4.php");
exit();
header("Location: http://hogehoge/hogehoge.html");
?>
--------------------------------------

もちろんWebブラウザ上でだけ見ても
空白は目に見えませんから、htmlソースレベルで確認するとか
Webサーバ経由ではなく、コマンドラインからphp動かして
確認するとかでしょうか。

はまるのは、incudeするphpファイルの末が
--------------------------------------
<?php
コードがずらずら・・・
?>

--------------------------------------
と「?>」の後に空行があるケース
echoとかしていないので、自分では出力している意識は
ない。けれども、phpは「<?php 〜 ?>」までをスクリプト
として実行して、それ以外の部分は*そのまま出力*することを
忘れないで。

-- 
goungoun <gounx2 @ gmail.com>
http://goungoun.dip.jp/app/



PHP-users メーリングリストの案内