-1

ubuntuにファイルを含めようとしていますが、奇妙な問題があります。インクルード ファイルはこのパスにあります - /var/www/cms-dev/corefiles/classes/config.hp インクルードしようとしているファイルはこのファイルです - /var/www/cms-dev/corefiles/lang.php

何らかの理由で、それを含めようとすると、ファイルが存在しないと表示されます-

Warning: require_once(../lang.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/cms-dev/corefiles/classes/config.php on line 9

SO これの解決策を探すために、 scandir を使用して現在のディレクトリと上位ディレクトリをスキャンしました。

現在のディレクトリについては、scandir("./") を使用してこれを取得しました-

配列 ( [0] => . [1] => .. [2] => .htaccess [3] => 管理者 [4] => ckeditor [5] => コアファイル [6] => index.php [7 ] => install.php [8] => log.txt )

scandir("/") を使用した現在のディレクトリの場合、これを取得しました-

配列 ( [0] => . [1] => .. [2] => bin [3] => boot [4] => cdrom [5] => dev [6] => etc [7] =>ホーム [8] => ホスト [9] => initrd.img [10] => initrd.img.old [11] => lib [12] => lib64 [13] => lost+found [14] => media [15] => mnt [16] => opt [17] => proc [18] => root [19] => run [20] => sbin [21] => selinux [22] => srv [ 23] => sys [24] => tmp [25] => usr [26] => var [27] => vmlinuz [28] => vmlinuz.old )

scandir("../") を使用して上位ディレクトリをスキャンするために、これを取得しました-

配列 ( [0] => . [1] => .. [2] => cms-dev [3] => index.html [4] => info.php [5] => test.txt [6] => test.txt~ )

しかし、config.php は /var/www/cms-dev/corefiles/classes/config.php に存在します。ここに - index.php とここに urlHandler.php を含めますが、config.php には自分自身に関連するファイルを含めるべきではありませんか?

4

2 に答える 2

2

とが必要config.phpですか?その場合、「ネストされたrequire_once()のパスは、require_once()を含む呼び出された/最初のファイルに対して常に評価される」ことに注意してください。index.phpurlHandler.php

言い換えると、いいえ、config.phpそれ自体に関連するファイルを含めるのではなく、相対的なファイルを含める必要がありますindex.php(したがってurlHandler.php、同じディレクトリにある場合は、ファイルも含める必要があります)。

詳細については、 http://www.php.net/manual/en/function.require-once.phpを参照してください。

于 2012-07-27T14:33:16.507 に答える
2

あなたの答えは明らかです。scandir("../") を使用して上位ディレクトリをスキャンすると、次のようになります。

Array ( [0] => . [1] => .. [2] => cms-dev [3] => index.html [4] => info.php [5] => test.txt [6] => test.txt~ )

lang.phpは、それを呼び出しているファイルに関連して、あると思われるディレクトリにはありません。絶対パスを試してください。

于 2012-07-27T14:02:01.967 に答える