• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpでの画像表示)

phpでの画像表示

このQ&Aのポイント
  • xamppを使用してphpで画像を表示させる方法やエラーについて調べています。
  • 友人のPCでは画像表示ができたことから、xamppの設定に問題がある可能性があると考えています。
  • 簡単なプログラムで画像表示を試みましたが、画像が壊れているエラーが発生しました。

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

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

ファイルがBOM付きのUTFだったりしませんか?

javajavascript
質問者

お礼

よく確認したところBOMが付いていました。 本当にありがとうございます。

javajavascript
質問者

補足

ご回答ありがとうございます。 BOMはついていないです。 友人のPCで動作していたので、設定の方に問題があるのかなと思っているのですが…。 何かご指摘あればよろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#244856
noname#244856
回答No.4

readfileだけで表示されたのは、そのファイルのバイナリデータです。 当然表示できない文字は「◆」に「?」が載ったような文字で化けで表示されます。 もしかしてブラウザの問題・・・? http://ameblo.jp/hiroro-chi/entry-10894465064.html

javajavascript
質問者

お礼

解決できました。 ご指摘ありがとうございました。

javajavascript
質問者

補足

ご回答ありがとうございます。 ブラウザはFirefoxとchromeとIEで行っていますがどれも同じ結果です。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

readfileを行うと、つまり普通に該当リソースを出力することになりますが、 一度header関数をコメントアウトして実行されてみてはいかがでしょうか。 jpgの画像のバイナリがそのままブラウザに表示されると思います。 その時点でエラーメッセージが出てくるようであればそのエラーを正せば治ると思います。 ありがちなのが、PHPの警告(fatal errorではなくwarning。推奨されていない記述などの時に出てくるエラー)が出力されてしまっているとかといった出来事だったりします。 いかがでしょうか。

javajavascript
質問者

補足

ご回答ありがとうございます。 エラーメッセージや警告は出なかったのですが、文字化けした文字というか記号が出力されました。

全文を見る
すると、全ての回答が全文表示されます。
noname#244856
noname#244856
回答No.1

?> の後に改行入ってたりするオチじゃないですよね・・・? そもそもこのようなときは「?>」はバグ防止のために省略するのが普通です。終了タグは必須ではありません。

javajavascript
質問者

補足

ご回答ありがとうございます。 改行・?>を変更して実行してみたのですが、同じ結果でした…

全文を見る
すると、全ての回答が全文表示されます。

関連する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で画像をデータベースから表示したいです

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

    • 締切済み
    • PHP
  • phpで画像のリサイズ表示

    質問お願い致します。 phpで画像のリサイズをして表示させたいと思っています。 色々調べた結果下記のサンプルコードを入れてみました。 <?php header("Content-Type:image/jpeg"); $imgpath = "http://*****************.jpg"; $im_info = getimagesize($imgpath); $src_im = ImageCreateFromJPEG($imgpath); $dst_im = imagecreate($im_info[0]/2,$im_info[1]/2); imagecopyresampled($dst_im,$src_im,0,0,0,0,$im_info[0]/2,$im_info[1]/2,$im_info[0],$im_info[1]); imagejpeg($dst_im); ?> しかし「画像ファイル "http://*****************.php" は壊れているため、表示できませんでした。」となってしまいました。 色々試した結果、下記の記述だけでも「画像ファイル "http://*****************.php" は壊れているため、表示できませんでした。」と表示されてしまいました。 <?php header("Content-Type:image/jpeg"); ?> 「header("Content-Type:image/jpeg");」を使用する際にはphp.iniの書き換えをするのかと調べてみたのですが、結局原因はわかりませんでした。 サーバーはさくら(スタンダードコース)です。 PHPは「PHP 5.2.17」になります。 どなたかお知恵を貸して頂けないでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP
  • PHPがどうしても反映されません

    ソフトバンク携帯から画像を転載できないようにする方法をいろいろと 模索した結果、PHPが有効だということがわかりました。 http://apachephp.seesaa.net/category/1648379-1.html 上記のサイトを参考にし、以下のようにつくってみました。 --------------------test.htmlの内容------------------------------ <?xml version="1.0" encoding="shift_jis"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>テスト</title> </head> <body> <img src="http://xxx.jp/test.php" /> </body> </html> ---------------------ここまで------------------------------------- ---------------------test.phpの内容------------------------------ <?php header('Content-Type: image/jpeg'); header('x-jphone-copyright: no-transfer'); @readFile('http://xxx.jp/01.jpg'); ?> --------------------ここまで-------------------------------------- 理想は、「http://xxx.jp/test.html」を開くと「http://xxx.jp/01.jpg」 の画像が表示されることです。 まず、レンタルサーバの環境ですが、PHPに対応しております。 ためしに、test.phpの内容を <?php echo 'test'; echo 'てすと'; ?> とし、http://xxx.jp/test.phpに直接アクセスしてみました。 すると、「test」はきちんと表示されました。 けれど、「てすと」はなぜか文字化けしてしまいました。 「test.php」の内容を <?php header('Content-Type: image/jpeg'); @readFile('http://xxx.jp/01.jpg'); ?> と、「header('x-jphone-copyright: no-transfer');」を消し test.htmlにアクセスしてみました。 けれど、画像は表示されませんでした。 そのほか、外部へのアクセスではなく、test.htmlの「body」内に直接 <?php header('Content-Type: image/jpeg'); header('x-jphone-copyright: no-transfer'); @readFile('http://xxx.jp/01.jpg'); ?> を入力した場合は表示されるかどうかを試してみました。「body」内に 入力を終えたあと、「http://xxx.jp/test.html」に直接アクセスしてみま したがやはり画像は表示されません。 あとは、「@readFile」の@をはずしてみたり、「readfile」とFを小文字に してみたり、「'」を「"」に変更してみたり……。 わたしなりに考えうる手はつくしました。検索エンジンでもいろいろと 検索して調べてみました。しかし、どうしても解決できませんでした。 そこで、上級者のお知恵をお借りしたく思い、教えてgooへ質問いたしました。 どうかご教授のほど、よろしくお願いいたします。

    • ベストアンサー
    • 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
  • 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
  • Apache,phpで画像が表示されない

    こんにちは Apache2.2、php5を使用しています。 ブラウザに画像を表示させたいのですが、URLで直接画像ファイルを指定するとファイルの場所を見せてしまうので、非公開のディレクトリの画像を表示させるようにphpのプログラムを呼び出して(引数をファイル名)にしています。 画像が「X」の状態で表示されません。(涙 header('Content-Type: ' . 'image/jpeg'); header('Content-transfer-encoding: binary'); header('Content-length: ' . filesize(/.../../$fileName)); header('Content-Disposition: attachment; filename="' . $fileName . '"'); のあとで、fopen() ->> fpassthru();で処理したのですが、小さい画像ファイルは処理は終わっていますが、「X」の状態で表示されて、大きい画像ファイルを指定するとfpassthru()の中で死んでしまいます。 fread ->> print ->> flush()ループで処理すると、flushの中で死んでしまいます。 error.logにも特に情報が残っていないので... 何かご存知の方はいらっしゃいませんか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpのプログラムエラー

    とあるサイトを参考にして、 excelファイルをダウンロードできるようにしたいと思い記述しましたが、 エラーが出て困っています。 どのように修正すればよいか、アドバイスいただけないでしょうか? php初心者のため、初歩的な質問かもしれませんこと、お許しください。 windows7を利用しています。 ■表示されたエラーの内容 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phpkiso\download.php:9) in C:\xampp\htdocs\phpkiso\download.php on line 15 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phpkiso\download.php:9) in C:\xampp\htdocs\phpkiso\download.php on line 17 Warning: readfile(依頼書ダミー.xls) [function.readfile]: failed to open stream: No such file or directory in C:\xampp\htdocs\phpkiso\download.php on line 19 ■プログラム <?php // ダウンロードさせるファイル名 $tmp_file = "依頼書ダミー.xls"; $j_file = "依頼書.xls"; $j_file = mb_convert_encoding($j_file, "SJIS", "EUC"); // ヘッダ header("Content-Type: application/octet-stream"); // ダイアログボックスに表示するファイル名 header("Content-Disposition: attachment; filename=$j_file"); // 対象ファイルを出力する。 readfile($tmp_file); exit; ?>

  • MYSQLでPHPから画像表示したい

    以下でPHPとMYSQLにて画像jpgを表示できたのですが、 header("Content-type: image/jpeg"); $result = mysql_query("SELECT * FROM test"); $row = mysql_fetch_assoc($result); print ($row['image']);これだけなら表示OK。 しかし、 テーブルタグの中にprint ($row['image']);をいれたり while文で囲んだりすると、文字の羅列になってしまいます。好きな場所にprint ($row['image']);で表示するには どうしたらいいのでしょうか?

    • ベストアンサー
    • PHP
  • PHPでGDライブラリを使って縮小した画像を直接表示したい

    PHPでGDライブラリを使って、「image.jpg」という画像(800x222のJPEGファイル)を、GETで渡した幅に縮小させたくて、次のように書きました。 -----reimage.php--------------------- <?php header("Content-Type:image/jpeg"); $old_width=800; $old_height=222; $width = htmlspecialchars($_GET['w']); $height = ($old_height / $old_width) * $width; $source = imagecreatefromjpeg("image.jpg"); $re_image = imagecreatetruecolor($width,$height); imagecopyresampled($re_image,$source, 0, 0, 0, 0,$width, $height, $old_width, $old_height); imagejpeg($re_image); imagedestroy($re_image); ?> -------------------------- 他のHTMLファイルから <img src="reimage.php?w=480"> などとすると縮小された画像が表示されるのですが、直接「reimage.php?w=480」を開くと、文字化けした文字列が並んでいるばかりで画像が表示されません。 firefoxでMIMEタイプを見てみると、「text/html」になっています。 >header("Content-Type:image/jpeg"); の部分がうまくいっていないのだと思いましたが、どう直せばいいのか分かりません。 なお、サーバーはxreaの広告免除を使っています。 まだPHPを勉強し始めて日が浅いので、見当違いなことを聞いているかも知れませんが、よろしくおねがいします。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • MFC J837DNのスマホでの印刷ができない問題について相談します。
  • エラー表示で接続ができないと表示されており、同じネットワーク上にあるか確認する方法がわかりません。
  • お使いの環境はiOSで無線LAN接続です。関連するソフト・アプリは特にありません。
回答を見る

専門家に質問してみよう