• ベストアンサー

PHP外部ファイルの画像呼び出しについて

PHPを使ってメニュー等の共通部分を一括管理しようとしたのですが、 index.phpは <?php require("top.txt"); ?> で上手くいったのですが、ひとつ下の階層のファイルでは <?php require("../top.txt"); ?> と記述したのですが、テキストだけ読み込んで画像は表示されませんでした。 階層が変わった場合はどうしてしたら良いか教えて下さい。 PHP初心者でエラートラブルに対処できなくて困ってます。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.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" /> > 試してみたのですが、結果は同じでした…。 どう試されたか分かりませんが、絶対にそんな筈はありません。もう一度確認して下さい。

enptybox22
質問者

お礼

詳しくご回答頂きましてありがとうございます。 分かりやすく、何とか解決できました。ありがとうございました。

その他の回答 (2)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

基本的にはHTMLの話ですが、 ANo.1さんの通り、画像指定が相対パスだからでしょう。 画像のsrcを "http://x/x/x.gif" や "/x/x.gif" の絶対パスにするか、 top.txt を top.php にして中で相対パスを作り出すか。

enptybox22
質問者

お礼

解決しました。ありがとうございます。

  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.1

別に、そのままでも表示できると思いますが… もしtop.txtの中で画像ファイルを呼んでいて、そこも相対パスで書かれているのであれば、画像ファイルの位置がずれていますよね。 試しにフルパスで書いてみたらどうなりますか?

enptybox22
質問者

お礼

試してみたのですが、結果は同じでした…。 indexや他のページでは同じtop.txtを使っても表示されるのですが、階層が変わったとたんに画像のみ表示がされません。 何が原因なのか…。 また何かアドバイスがありましたらよろしくお願いいたします。

enptybox22
質問者

補足

私の勘違いで、フルパスがどういうものか分からずですいませんでした。