[PHP-users 31071] Re: requireについて

Harai harai @ netcompass.co.jp
2006年 12月 19日 (火) 16:11:22 JST


はらいと申します。

On Sun, 17 Dec 2006 22:30:52 +0900
"H.Kouno" <kouno @ ma.akari.ne.jp> wrote:

> そして以下のように構成されたファイルがあります。
> /home/homepage/php_lib/public.inc
> /home/homepage/public_html/member/test.php
> 
> test.phpから以下のように指定すると読み込みに失敗します。
> require("../../php_lib/public.inc");

実は public.inc が更に別のファイルをインクルードしようとして
その先で失敗しているとか…。

あるいは、サンプルソースではシンプルに書いたものの、public.inc を
読み込んでいるわけではなく、/home/homepage/php_lib/common.inc の
ようなファイルが public.inc を呼ぼうとしているような
ケースではないでしょうか。

ディレクトリをまたいで多段階の require を相対パスで指定するときは、
最初に起動されたファイルのパスに注意する必要があります。

もちろん Mashikiさんや上鍵さんが指摘されたように、
「ドキュメントルート以下以外のファイルは相対パスでは指定できない」
ということはあり得ません。

もしそうだとすると HTML_QuickForm が、

  require_once("HTML/QuickForm.php");

という形で呼び出せない、ということになってしまいます。

-- 
Takeharu Haraikawa <harai @ netcompass.co.jp>




PHP-users メーリングリストの案内