質問: 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を正常に表示させるための手段はあるのでしょうか。 お手数ですが教えていただけると助かります。
回答: 参照用途のソースコードで他の参照がある場合は 例示のサンプルmodule.phpの場合、includeを 「include dirname(__FILENAME__)."/image.gif"」 と宣言すればよろしいかと思います。 dirnameは指定したファイルのパスを取得する関数、 __FILENAME__はソースファイルの絶対名を表す組み込み定数です。 この書き方でどこからincludeしてもincludeされたソース内の includeは宣言されたソースのパスを元に指定するようになり、 include元ではパスのいちを考慮しなくて済むようになります。 詳細は下記のページが参考になるかと思います。