当我使用../时,为什么会出现警告和致命错误?
当我使用../mysqlConnect.php
时,我收到以下消息。当我使用../时,为什么会出现警告和致命错误?
Warning: require_once(../mysqlConnect.php) [function.require-once]:
failed to open stream: No such file or directory in /home/content/etc...
Fatal error: require_once() [function.require]: Failed opening required
'../mysqlConnect.php' (include_path='.:/usr/local/php5/lib/php') in /home/content/etc...
当我使用目录名称 - mydir/mysqlConnect.php
- 一切工作正常。
这是因为您没有指定正确的包含路径。 ../
涉及父目录。 ../../
回去两个目录,../../../
去三个回。如果mysqlConnect.php
文件与脚本位于同一文件夹中,则不需要在include中指定../
。
请确保您指定了正确的路径。你可以很容易地检查你是否指定正确的路径,如:
if (file_exists('../mysqlConnect.php'))
{
echo 'Iam specifying the correct path !!';
}
else
{
echo 'Well, I am not :(';
}
要求是相对于invoced脚本,而不是你调用require()的脚本。使用类似这样的东西来获得绝对路径:
require(dirname(__FILE__) . '/../mysqlConnect.php');
在PHP 5中,您还可以使用DIR。
require_once('../mysqlConnect.php')
要求PHP在以上的目录中查找您的脚本当前在mysqlConnect.php
之一。
由于您的连接文件似乎是一个mydir
目录,require_once('mydir/mysqlConnect.php')
的作品,因为它会在该目录中,这是由一个它目前在遏制。
视觉表现(假设script.php
是你的脚本包括文件):
dir/
subdir/ # PHP looks here for ../mysqlConnect.php
script.php
mydir/ # PHP looks here for mydir/mysqlConnect.php
mysqlConnect.php
需要该文件的脚本位于根目录下。我需要的文件位于根目录下一个文件夹中。 – aliov 2010-06-14 18:48:06
也许是因为'mydir'在当前目录内(考虑它是相对的),其中'../'高于它......? – ircmaxell 2010-06-14 18:39:54
请更新您的问题并添加您的文件夹和文件的结构。 – jigfox 2010-06-14 18:55:22
您是否尝试在'../mysqlConnect.php'中添加引号? – 2010-06-14 20:20:30