3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(PHP)AjaxUploadで画像が表示されない原因は、、、BOMだった..

(PHP,HTML)AjaxUpload 画像選択時にアップロードしサムネイルを表示を実装していたんですが、なぜかサムネイルが表示されない現象が発生しました。

Ajaxで返すPHP側を絶対パスで返すようにIE8で画像のプロパティを表示すると、 http://hoge.local/http://hoge.local/img/up.jpg といったように正しくパスが解釈されません。

で、Firefoxで確認すると、画像パスが http://hoge.local/%EF%BB%BF%EF%BB%BFhttp://hoge.local/img/up.jpg となっています。

ん? EF BB BF ってどっかでみたことあるぞ と思ったら、(PHP)UTF8でBOMがあるとブラウザ表示時レイアウトがおかしくなるで以前ハマッた現象でした。

そうです。reuireしている別PHPファイル2個が UTF-8 の BOM が付いていたのです。

BOM無しで保存しなおすことで、正しく表示されるようになりましたが、気づくのにかなりの時間がかかってしまいましたorz。

PHPUTF-8を使う場合は、必ずBOM無しって覚えておかないといけませんね。。。