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を見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
warningを画面に表示させない設...
-
クッキーがセットされません
-
phpにcssを適応させたい...
-
onedrive にexcelファイルをア...
-
PHPのif文でその処理を途中で抜...
-
.phpと.incファイルの違いはな...
-
.htaccessにphp_valueが使用できな
-
form actionで二つ送信先を指定...
-
phpでget_headers()が使えない?
-
PHP8を使うと、大量のWarningが...
-
Apacheでhttp://localhost/が表...
-
フォントの色を変えるには?
-
cakephpのサブタイトルはどこで...
-
VBSの「MsgBox」について
-
stat failed
-
PHPのコマンドラインでのバージ...
-
openCVの超解像処理
-
FTPClientで転送結果(OKかFAIL)
-
FTPコマンドでディレクトリごと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPSpreadsheetによる書き出し...
-
PHPにおける時間計算、時間足し...
-
PHPで取得したHTML内のdiv要素...
-
TCPDFについて
-
エクスプローラーでフォルダを...
-
¥マークを出力したいがバック...
-
リダイレクト元のURLの取得方法...
-
ob_end_clean と ob_clean の違...
-
PHPで`headers already sent`と...
-
PerlからPHPへ移行したときの注...
-
PHPでデータベースからデータを...
-
image関数でMS Pゴシックを使い...
-
smarty foreach 半角スペース
-
phpでの画像表示
-
webroot以外の画像の表示
-
phpexcelにてsubmitボタンを押...
-
phpにcssを適応させたい...
-
PHPで動的に生成した画像がキャ...
-
文字列を段落で分ける方法を教...
おすすめ情報