• 締切済み

PHP内にHTML読み込み時のファイルパス

PHP初心者です。 Web頁作成の際、メニュバナーを一元共有したいと思い、苦戦しております。 / index.php | |-/Banner   |-_banner.html   |-バナー用画像1   |-バナー用画像2    ・・・ |-/Folder1 |-/Folder2 上の様なフォルダ構造で、index.phpや「/Folder1」「/Folder2」等に入っているコンテンツファイルから、「/Banner」内に格納したhtml(+Javascript)で作成したメニューファイル「_banner.html」を、phpを使って共有したいと考えています。 index.phpから、_banner.htmlファイルの読み込みは、以下のrequire関数で読み出すことに成功しています。  (require(dirname(__FILE__)."/_Banner/_banner.html") が、「/Banner」フォルダ内に格納した、バナー用画像ファイルが、表示されません。 html自体が相対パスの為、ファイルパスが通らないことが原因であることは理解できるのですが、PHP初心者の為、どの様な関数を使えば、html内のファイルパスを変更できるのかが、わかりません。 過去、似た様な質問がされていることとは存じますが、どなたか、対処法ご教授願えませんでしょうか?

みんなの回答

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

おそらく、_banner.htmlには<img src="バナー用画像1">的な 表現が書かれていると思います。 もちろんダイレクトに_banner.htmlにアクセスすれば、相対的に おなじディレクトリにいるので、画像が表示されますが、 ルートから_banner.htmlをincludeすると、バナー用画像1は ルートを探しますので、見つからないわけです。 最初から、<img src="/_Banner/バナー用画像1">としておけば、 _banner.htmlをダイレクトにアクセスしても、別のディレクトリから インクルードしても参照できるはずです。

takebon-xx
質問者

お礼

レスポンス遅くなりました。yambejp様申し訳ございません。 回答ありがとうございました。 試してみました。 <img src="/_Banner/バナー用画像1">で試して、みましたが、ルートフォルダにおいたindex.phpでは正しく表現できました。 が、/Folder1においたファイルでは、正しく表示できませんでした。 (当たり前ですが..) 苦肉の策で、_banner.htmlの中の画像パスを絶対パスにすることでクリアしました。 もう少し、ファイルパスを変える変数を勉強したいと思います。

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

/Bannerディレクトリの_banner.htmlをインクルードするなら バナー用画像はindexからの相対(/Banner)パスが必要でしょう。

takebon-xx
質問者

補足

回答ありがとうございます。 >/Bannerディレクトリの_banner.htmlをインクルードするなら >バナー用画像はindexからの相対(/Banner)パスが必要でしょう。 そうだと思っていたのですが、/Bannerパスは、 html内の画像ファイルのパスを、絶対パスにすることで解決させるのでしょうか? もしくは、index.php内で何かの手法で、明示が可能なのでしょうか? この辺が良くわからないのです。