アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のようなコードで、ブラウザに画像を表示させようとしたところ、画像が表示されず、代わりに「×」印が表示されました。どうすれば画像が表示できるのでしょうか?

<?php
$img = file_get_contents('./test.jpg');
header('Content-type: image/jpeg');
echo $img;
?>

上記のコードは以下のサイトを参考に書きました(というより、ほぼそのままコピペしただけです。)

http://ysklog.net/php/1575.html
http://php.birdlab.com/tips/1


【備考】
・OSはWindows7、XAMPPを導入して動かしています。IE11とChromeのバージョン 37.0.2062.120 m(現時点の最新版のようです)で試しましたがどちらも同じ結果でした。(正確には、Chromeの方は×印ではなく、文字1文字分くらいの大きさの「ファイル」のような画像でしたが…(ネットを見ている際に、画像ファイルが表示されない時に代わりに表示されるアレです))
・表示した画像ファイル test.jpg はphpファイルと同じフォルダに置いてあります。ファイル名が違う(そもそも存在しないファイル名を指定している)場合には、エラーメッセージが表示されましたので、ファイルの存在は認識されているようです。
・readfile関数を使っても駄目でした。
・画像ファイルが壊れているということはありません(画像ファイルのアドレスを直接指定した場合はきちんと表示されます)

コードの問題ではなく、環境設定の問題だと思いますが、どこに問題があるのかさっぱりわかりません。よろしくお願い致します。

A 回答 (1件)

可能性はいくつかありますが一番多いのはUTF8のBOM


BOMなしで保存してもだめでしょうか?
    • good
    • 0
この回答へのお礼

phpのファイルをUTF8のBOMなしで保存したら、表示されました。

UTF8のBOMありが標準のように思ってましたが、そうでもないみたいですね。BOMありとなしの違いはまだよくわかっていませんが、勉強してみます。

ありがとうございました。

お礼日時:2014/09/21 16:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!