人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの質問です。

サイトで
folderroot
indexroot.php
folderA
indexA.php
folderB
indexB.php
folderC
module.php
image.gif
のようなサイト構成だったとします。

module.phpでは、「image.gif」を参照しています。

このケースで、indexA.phpとindexB.phpからのみmoduleを呼び出すときは、「readfile ("../folderC/module.php")」として、module.phpでは、「../folderC/iamge.gif」を参照すればいいと思います。

このケースで、indexroot.phpからもmodule.phpを呼び出して、image.gifを正常に表示させるための手段はあるのでしょうか。

お手数ですが教えていただけると助かります。

●質問者: suuui
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● oil999
●50ポイント

module.php で同様に、"../folderC/iamge.gif" を参照すればよいのです。

readfile 関数は、呼び出したPHPファイルが存在するディレクトリから見た相対呼び出しになります。
ご質問のケースでは "indexroot.php" から "iamge.gif" の相対呼び出しをすることになりますから、"../folderC/iamge.gif" を参照すればよいのです。


suuuiさんのコメント
現状での呼び出しは indexroot.php ⇒ module.php ⇒ image.gif(HTMLに記述) indexA.php ⇒ module.php ⇒ image.gif(HTMLに記述) indexB.php ⇒ module.php ⇒ image.gif(HTMLに記述) このときの、module.phpの記述方法が分からないので。

oil999さんのコメント
回答したように、いずれの場合も呼び出し元のPHPファイル(module.phpではない)の位置からの相対アドレス指定になりますので、HTML記述は下記のようになります。 >|html| <img src="../folderC/image.gif" /> ||<

2 ● cno
●50ポイント

参照用途のソースコードで他の参照がある場合は
例示のサンプルmodule.phpの場合、includeを
「include dirname(__FILENAME__)."/image.gif"」
と宣言すればよろしいかと思います。

dirnameは指定したファイルのパスを取得する関数、
__FILENAME__はソースファイルの絶対名を表す組み込み定数です。
この書き方でどこからincludeしてもincludeされたソース内の
includeは宣言されたソースのパスを元に指定するようになり、
include元ではパスのいちを考慮しなくて済むようになります。

詳細は下記のページが参考になるかと思います。
http://suin.asia/2009/02/18/getcwddirname-file.html


suuuiさんのコメント
oil999さん、cnoさん、たすかりました。ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ