【PHP】画像が表示されず「×」が表示される

このQ&Aのポイント
  • PHPで画像が表示されず「×」が表示される問題について説明します。
  • 質問のコードで画像が表示されない場合、環境設定の問題が考えられます。
  • 参考サイトを見ても解決しない場合、ファイルのパスやパーミッションの設定を確認してください。
回答を見る
  • ベストアンサー

【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
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

可能性はいくつかありますが一番多いのはUTF8のBOM BOMなしで保存してもだめでしょうか?

m-a-xyzzzz
質問者

お礼

phpのファイルをUTF8のBOMなしで保存したら、表示されました。 UTF8のBOMありが標準のように思ってましたが、そうでもないみたいですね。BOMありとなしの違いはまだよくわかっていませんが、勉強してみます。 ありがとうございました。

関連するQ&A

  • PHP 画像の表示

    プログラミング初心者です。 PHPでブラウザに画像を表示したいのですが映らなくて 以下のソースコードは間違っているでしょうか? <?php $fileName = "img/test.jpg"; //ファイル名 if (file_exists($fileName)) { header('Content-type: image/jpeg'); header('Content-Length: '.filesize("http://localhost:8080/test.jpg")); //あった方が良い readfile("http://localhost:8080/test.jpg"); //ファイルを読み込んで標準出力に書き出し exit; } ?>

    • ベストアンサー
    • PHP
  • phpでの画像表示

    xamppをインストールし、様々なことを行っています。 現在phpで画像を表示させようと考えています。 しかし、プログラムを実行すると、 画像ファイル"http://~~~test.php"は壊れているため表示できませんでした。 と表示されてしまいました。 なので、もっと簡単なプログラムで確認してみようということで、 sample.php <?php header('Content-type: image/jpeg'); readfile('C:\xampp\htdocs\php1st\image\a.jpg'); ?> で実行してみました。 しかし、こちらでも上記と同じエラーが起こってしまいます。 友人のPCで行ったところ、実行できました。 友人はxamppの設定を少しいじったと言っていたのですが、どこをいじったかは覚えていないそうです。 どうかご意見いただければ、幸いです。

    • ベストアンサー
    • PHP
  • php 画像表示(imgタグ)

    PHPに関しての質問させて頂きます。 XAMPPにて環境を作り、htdocs内にtestフォルダを 生成し、その中に1.jpgと言う画像があります。 DB上では1だけを保持しており、ブラウザに 1jpg画像を表示させたいのですが、うまく いきません…。 ★$item['IMG']には1が保持しています。 print "<img src='./test" . $item['IMG'] ."img'></td>"; お分かりになる方よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPの画像表示パス

    お世話になります。 PHPでブラウザに画像を表示するときのパスについて質問させていただきます。 以下のようなコードで、画像のフルパスを使って画像を表示させようとしていますが、画像が表示されません。(添付スクリーンショットの左側)。 このコードの 第1行をコメントアウトして、第2行の相対パスでやると、画像がちゃんと表示されます。(右側) これはどうしてなのでしょうか?詳しい方がいらっしゃいましたら、よろしくご教授ください。 ちなみに、このファイル自体のパスは C:\xampp\htdocs\PHP7-solutions\new-test.php です。 <?php $selectedImage = "C://xampp/htdocs/php7-solutions/images/kinkakuji.jpg"; //$selectedImage = "images/kinkakuji.jpg"; if (file_exists($selectedImage) && is_readable($selectedImage)) { // && is_readable($selectedImage) $imageSize = getimagesize($selectedImage); echo "<pre>"; print_r($imageSize); echo "</pre>"; echo "<img src='".$selectedImage."' alt='kinkakuji temple' ".$imageSize[3].">"; }else { echo "no such file<BR>"; }

    • ベストアンサー
    • PHP
  • PHP getimagesize();

    プログラミング初心者です。 現在、PHPにてブラウザに画像の表示をしようとしているのですが 上手く行きません。ソースコードを張るのでダメなところがありましたら 手ほどきの程お願い致します。 ーーーーー <?php $fileName = "test.jpg"; //ファイル名 if (file_exists($fileName)) { header('Content-type: image/jpeg'); header('Content-Length: '.filesize($fileName)); //あった方が良い readfile($fileName); //ファイルを読み込んで標準出力に書き出し ★getimagesize(test.jpg); exit; }else{ echo "b"; } ?> ーーーー 目的 - phpにてブラウザに画像の表示 状況 - 最初は★のある行はなしでやっていたが 画像が映るも、かなり小さかったので大きくしようと ★のある行を追加。 - 画像の小ささはスクリーンショットを参考

    • ベストアンサー
    • PHP
  • phpで画像表示した際に

    veiw.php?id=1のような形式でphpで画像表示しています。 各ブラウザで画像右クリックで保存すると違いがあり質問です。 画像表示のファイル名はview.phpで出力形式はjpgというのが前提で 保存時の各ファイル名は下記の通りでした。 ie7=view.jpg FF3=view.php Chrome=view.php.jpg opera=view.jpeg FF3以外はそれぞれファイル名が微妙に異なるものの画像として保存 できるのですがFF3のみ拡張子がphpとして保存されてしまいます。 ※保存させる事が表示の目的ではないのですが気になったもので・・・ 保存されたファイルをエディタで開いても 『ファイルに含まれていたNull文字(00H)は、スペースに変換して開きます。』 とアラートが表示されそのまま開くとすっかり文字化け?しているようで ソースが見られるというような事もないので問題ないと思うのですが 全てのブラウザで保存した際に画像として保存させたいのですが どうすれば可能でしょうか? FF3だけ違うのでブラウザの仕様?とも思ったのですがご存知の方が いらっしゃいましたらアドバイスお願い致します。

    • 締切済み
    • PHP
  • fopenの使い方?(画像の保存)

    お世話になります。 exif_thumbnailで取得したサムネイル画像をjpgファイルとして元画像ファイルとは別名で保存したいと考えています。 テストで以下のようなコードを作成しましたが、うまく保存できません。fopenの基本的な使い方が間違っているのではないかと思っていますが、どこがおかしいのかわからずにおります。 <?php $img = exif_thumbnail("./test.jpg", $width, $height, $type); $handle = fopen ("./thumb.jpg", 'a'); fwrite($handle, $img); ?> ちなみにPHPのバージョンは5.0.3です。 echo($img);でサムネイル画像が取得できていることは確認できております。 要はtest.jpg → $img → thumb.jpgとできればいいのですが。。 どうしたらうまく保存できますでしょうか。 よろしくお願いします。

    • 締切済み
    • PHP
  • 画像表示で不正な理由がわからない

    お世話になります。 PHP4とMySQLを使って 「DBのBLOB型項目に保存した画像データを呼び出して表示する」 ということがしたくてこちらも他もいろいろ調べた結果、 「画像表示PHP」のimgのsrc部で「画像呼出PHP」を指定すればよい というのはわかったのですが、うまくいきませんでした。 それで少しずつ決め打ちを増やしたり削ったりして簡素化し不正な点を見つけようとしたのですが直らず、最終的に下のようにDBからの読み出しすらやめて、「同一階層にイメージを置いて表示するだけ」としてもエラーが直らないのでわけがわからなくなってしまいました。 そもそもやってること自体が少ないので根本的な勘違いなのかもしれませんが、どなたか気づいた方教えて頂けないでしょうか? どうかよろしくお願い致します。 ----------------------------------------------- ■画像表示「test.php」 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>TEST</title> </head> <body> <? echo "<img src=\"image.php\">"; ?> </body> </html> ----------------------------------------------- ■画像呼出「image.php」 <? header("Content-Type; image/jpeg"); echo "aaa.jpg"; ?> ----------------------------------------------- ・「test.php」「image.php」「aaa.jpg」はすべて同一ディレクトリ ・test.phpのPHP部を「<img src="aaa.jpg">」とすると正常に表示 ・エラー状態とは画面に「×」画像が表示される状態

    • ベストアンサー
    • PHP
  • (javascript)HTMLで指定した画像パスに画像ファイルがない

    (javascript)HTMLで指定した画像パスに画像ファイルがない場合、別のファイル名の画像に差し替える方法が知りたいです。 以下のようにimgフォルダ内にある画像ファイル名をPHPでゲットしているのですが、その画像ファイルがない場合、確実にimgフォルダ内に存在する画像ファイルと差し替えたいのです。 print("<img src=img/". $item->getImage(). "border=0>\n"); <img src=img/cat.jpg border=0>が存在しないなら、<img src=img/dog.jpg border=0>を表示する。 javascript等、解決する方法がありますか? ご教授お願いします。 よろしくお願いします。<(_ _)>

  • PHPで画像をデータベースから表示したいです

    画像とテキストを同じファイルで表示したいのですが文字化けしてしまいます。 <?PHP header('Content-type: image/gif'); readfile('アドレス/232-73.gif'); ?> 画像だけの場合は表示はできるのですがテキストと一緒に表示しようとしましたが上手くできません。 どうしたらいいでしょうか?

    • 締切済み
    • PHP

専門家に質問してみよう