CentOS 4.6
を使用しています。
通常、COOKIEやSESSIONを使用する場合、マニュアルにもあるように、
setcookie() は、その他のヘッダ情報と共に 送信するクッキーを定義します。 ほかのヘッダ情報と同様に、 クッキーは、スクリプトによる他のあらゆる出力よりも前に 送信される必要があります(これはHTTPプロトコルの制約です)。 <html> や <head> タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。
とあります。
ですので、
UnicodeSignのBOMコードを付加すると、最初にBOMが出力されてしまい、
正常な動作は望めないような気がします。
しかし、BOM付きのソースを実行したところ、
正常に動作するときとしないときがあるのです。
正常に動作するときの要因はいったいなんでしょうか??
The elephant vanishes PHPがBOM付きUTF-8をうまく処理してくれない件
によるとバグだそうです。
[PHP-users 12229] Re: bomつきutf-8 ファイルでのheader によるリダイレクト
上記のページに以下のような記述がありましたので引用します。
BOM のご利益としては、もしかしたら、Unicode だと判定するときの材料となるかもしれない
推測で申し訳ないですが、Unicodeと判断された場合には正常に動作するのかも知れません。
私自身はBOM付きでは作成する事はありませんし、Unicodeの判断はheader()を使ったりしますので、正確にはわかりません。
参考になれば幸いです。
ありがとうございます。
BOM出すとよくないのはわかっているんですが、
正常に動くときもあったりするので、
すごく気持ち悪いなと思い、質問しました。