- ベストアンサー
PHP外部ファイルの画像呼び出しについて
PHPを使ってメニュー等の共通部分を一括管理しようとしたのですが、 index.phpは <?php require("top.txt"); ?> で上手くいったのですが、ひとつ下の階層のファイルでは <?php require("../top.txt"); ?> と記述したのですが、テキストだけ読み込んで画像は表示されませんでした。 階層が変わった場合はどうしてしたら良いか教えて下さい。 PHP初心者でエラートラブルに対処できなくて困ってます。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
最終的には生成されたHTMLを見て下さい。画像表示にPHPは関係ありません。階層が違えば、相対リンクなら表示されなくて当然です。 #1、#2さん指摘のように、絶対パスを入れる必要があります。読込む画像リンクを <img src="hogehoge.jpg" />とか、<img src="../image/hogehoge.jpg" /> というのを、絶対パス(ホスト以下のパスです。http://hogehoge.com/image/hogehoge.jpgだとしたら、/image/hogehoge.jpgです。)を指定してやればどこでどう読込まれても表示される筈です。 <img src="/image/hogehoge.jpg" /> > 試してみたのですが、結果は同じでした…。 どう試されたか分かりませんが、絶対にそんな筈はありません。もう一度確認して下さい。
その他の回答 (2)
- tany180sx
- ベストアンサー率63% (239/379)
基本的にはHTMLの話ですが、 ANo.1さんの通り、画像指定が相対パスだからでしょう。 画像のsrcを "http://x/x/x.gif" や "/x/x.gif" の絶対パスにするか、 top.txt を top.php にして中で相対パスを作り出すか。
お礼
解決しました。ありがとうございます。
- TA-HT81S
- ベストアンサー率39% (72/184)
別に、そのままでも表示できると思いますが… もしtop.txtの中で画像ファイルを呼んでいて、そこも相対パスで書かれているのであれば、画像ファイルの位置がずれていますよね。 試しにフルパスで書いてみたらどうなりますか?
お礼
試してみたのですが、結果は同じでした…。 indexや他のページでは同じtop.txtを使っても表示されるのですが、階層が変わったとたんに画像のみ表示がされません。 何が原因なのか…。 また何かアドバイスがありましたらよろしくお願いいたします。
補足
私の勘違いで、フルパスがどういうものか分からずですいませんでした。
お礼
詳しくご回答頂きましてありがとうございます。 分かりやすく、何とか解決できました。ありがとうございました。