当我尝试在php中使用include_once包含一个文件时显示警告:include_once(1)[function.include-once]:无法打开流:/var/www/test/content_box.php中没有这样的文件或目录在线2.实际文件在我的目录中.我正在使用ubuntu(OS)我们如何防止此警告.如果有人知道请帮助我
tho*_*ter 15
注意:我的答案结果证明很受欢迎,但我没有真正回答这个问题.这不是关于抑制警告,而是关于修复导致警告的错误.我会留在这里为后代.
防止警告的正确方法是先检查第一个是否存在,如果不存在则不要尝试包含它.
if (file_exists($includefile)) {
include_once($includefile);
}
Run Code Online (Sandbox Code Playgroud)
(显然用您包含的文件替换$ includefile)
我不建议快速而肮脏的方法是使用@表达式来抑制警告.
@include_once($includefile);
Run Code Online (Sandbox Code Playgroud)
请注意,当以这种方式抑制警告时,PHP的错误处理代码仍会运行,但PHP的error_reporting ini值会暂时更改为忽略它.根据经验,这不是一个好主意,因为它可以掩盖其他错误.
正如其他人所指出的那样,"1"是PHP文件的一个不寻常的文件名,但我认为你有一个特定的理由这样做.
显然,这里的问题是PHP无法找到您尝试包含的文件.为了减少对当前路径的混淆,我通常将其作为这样的绝对路径:
// inc.php is in the same directory:
include (dirname(__FILE__) . "/inc.php");
// inc.php is in a subdirectory
include (dirname(__FILE__) . "/folder/inc.php");
// inc.php is in a parent directory
include (dirname(dirname(__FILE__)) . "inc.php");
Run Code Online (Sandbox Code Playgroud)
它可能有点超过顶部,但您可以确定知道PHP在哪里寻找您的文件.