
phpを勉強始めたばかりで、データベースを使う必要がでてきたため、初心者サイトを
読んでいるのですが、一点質問があります。
行いたい事は、データベースに保存した画像パスをphpで出力するだけなのですが、パスが
文字列として扱われてしまっています。画像を出力するにはどうすれば良いでしょうか?
例えば以下のようなphpプログラムで、nameには画像パスである 「abc.jpg」という文字が
入っていたとすると以下ではそのままabc.jpgという文字列が出力されてしまします・・・。
<?php
$pdo = new PDO("mysql:dbname=aaa", "root");
$pdo->query("set names utf8;");
$st = $pdo->query("SELECT * FROM bbb");
while ($row = $st->fetch()) {
$name = htmlspecialchars($row['name']);
echo '<img src="$name">';
}
?>
A 回答 (3件)
- 最新から表示
- 回答順に表示

No.3
- 回答日時:
No.1さんもおっしゃっているように
> 「abc.jpg」が表示されるとは思えませんが
仮に
echo "<img src=¥"$name¥">";
だとして、出力結果が
<img src="abc.jpg">
となったとしたら、これはこれで正しいと思いますよ。
abc.jpgがその場所にあれば、正しく表示されると思います。
画像そのものを出力したい、つまり
(たとえば)
/abc.jpg
がリクエストされたとき、PHPを実行して画像(バイナリ)を返したい、ということならば、
1.まずそのURLがリクエストされたときPHPが実行されるようにウェブサーバの設定をする
2.(画像そのものがDBに格納されているとして)PHPで先のPDOなどを使って画像を取得する
3.header関数でContent-Typeを指定して(header('Content-type: image/jpeg');)
4.2の画像を出力する
という流れになると思います。
画像をDBに格納しておらず、どこかのディレクトリに保存しているなら、
1.そのディレクトリをウェブサーバ経由で外部ネットワークから参照できるようにウェブサーバを設定する
またはウェブサーバ経由で外部ネットワークから参照できるディレクトリにその画像を保存する
2.そのディレクトリに対応するURLパスを先のDBに保存する
3.先の$nameが2のURLになっていればOK
と思います。ウェブ上から見えないどこかのディレクトリに保存してPHP経由で返してもよいと思います。
No.1
- 回答日時:
>そのままabc.jpgという文字列が出力
echo '<img src="$name">';
という記述を見る限り、シングルクォーテーションで囲まれている
文字列を出力しているので$nameは展開されないので
「abc.jpg」が表示されるとは思えませんが?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPSpreadsheetによる書き出し...
-
文字列を段落で分ける方法を教...
-
リダイレクト元のURLの取得方法...
-
Whileループ時の改行?
-
CSV出力にHTMLが入ってしまう
-
phpでの画像表示
-
TCPDFについて
-
webroot以外の画像の表示
-
ヒアドキュメント 前にタブを...
-
warningを画面に表示させない設...
-
ob_end_clean と ob_clean の違...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
VBSの「MsgBox」について
-
zip圧縮の種類について
-
レンタルサーバーのセッション...
-
Subversionのリポジトリの削除
-
inputタグでphpを呼び出す際、...
-
form actionで二つ送信先を指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPにおける時間計算、時間足し...
-
phpにcssを適応させたい...
-
mPDFでのPDF出力がうまくいかな...
-
PHP/phpMyAdmin/データベースな...
-
GDで生成したはずの画像が文字...
-
ob_end_clean と ob_clean の違...
-
リダイレクト元のURLの取得方法...
-
PHPでの表示内容の切り替え
-
¥マークを出力したいがバック...
-
PHPで`headers already sent`と...
-
phpexcelにてsubmitボタンを押...
-
ImageStringで日本語表示させたい
-
exit exit(); 言語構造
-
ヒアドキュメント 前にタブを...
-
PHPで取得したHTML内のdiv要素...
-
TCPDFについて
-
【smarty】<A href="">内でのみ...
-
変数名の前後に文字列を追加す...
-
<img src=~.php>へのデータの...
おすすめ情報