※ ChatGPTを利用し、要約された質問です(原文:【PHP】画像が表示されず「×」が表示される)
【PHP】画像が表示されず「×」が表示される
このQ&Aのポイント
PHPで画像が表示されず「×」が表示される問題について説明します。
質問のコードで画像が表示されない場合、環境設定の問題が考えられます。
参考サイトを見ても解決しない場合、ファイルのパスやパーミッションの設定を確認してください。
以下のようなコードで、ブラウザに画像を表示させようとしたところ、画像が表示されず、代わりに「×」印が表示されました。どうすれば画像が表示できるのでしょうか?
<?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関数を使っても駄目でした。
・画像ファイルが壊れているということはありません(画像ファイルのアドレスを直接指定した場合はきちんと表示されます)
コードの問題ではなく、環境設定の問題だと思いますが、どこに問題があるのかさっぱりわかりません。よろしくお願い致します。
お礼
phpのファイルをUTF8のBOMなしで保存したら、表示されました。 UTF8のBOMありが標準のように思ってましたが、そうでもないみたいですね。BOMありとなしの違いはまだよくわかっていませんが、勉強してみます。 ありがとうございました。