我做不到这样的事情?
try {
require_once( '/includes/functions.php' );
}
catch(Exception $e) {
echo "Message : " . $e->getMessage();
echo "Code : " . $e->getCode();
}
没有回显错误,服务器返回500。
答案 0 :(得分:51)
您可以使用include_once
或file_exists
:
try {
if (! @include_once( '/includes/functions.php' )) // @ - to suppress warnings,
// you can also use error_reporting function for the same purpose which may be a better option
throw new Exception ('functions.php does not exist');
// or
if (!file_exists('/includes/functions.php' ))
throw new Exception ('functions.php does not exist');
else
require_once('/includes/functions.php' );
}
catch(Exception $e) {
echo "Message : " . $e->getMessage();
echo "Code : " . $e->getCode();
}
答案 1 :(得分:10)
你可以阅读here :(我的)
require()与include()相同 除非失败,它也会 产生致命的E_COMPILE_ERROR级别 错误即可。换句话说,它会停止 脚本
这是关于require的,但这相当于require_once()。这不是一个可捕获的错误。
顺便说一下,你需要输入绝对路径,我不认为这是正确的:
require_once( '/includes/functions.php' );
你可能想要这样的东西
require_once( './includes/functions.php' );
或者,如果您从子目录或包含在不同目录中的文件中调用它,您可能需要类似
的内容require_once( '/var/www/yourPath/includes/functions.php' );
答案 2 :(得分:5)
这应该有效,但这有点像黑客。
if(!@include_once("path/to/script.php")) {
//Logic here
}