我需要一个include
函数/语句,只有文件存在时才包含该文件。 PHP中有一个吗?
您可能建议使用@include
但该方法存在问题 - 如果要包含的文件存在,如果解析器在包含的文件中发现错误,PHP将不会输出警告。
答案 0 :(得分:81)
if(file_exists('file.php'))
include 'file.php';
那应该做你想做的事
答案 1 :(得分:9)
尝试使用file_exists()
if(file_exists($file)){
include $file;
}
答案 2 :(得分:6)
根据@ Select0r的回答,我最终使用了
if (file_exists(stream_resolve_include_path($file)))
include($file);
即使您将此代码写入已从另一个目录中的文件中包含的文件中,此解决方案仍然有效。
答案 3 :(得分:3)
如何在file_exists
之前使用include
?
答案 4 :(得分:3)
答案 5 :(得分:1)
我认为您必须使用file_exists
,因为如果有这样的包含,则会在此处列出:http://php.net/manual/en/function.include.php
答案 6 :(得分:1)
@include($file);
在前面使用at,忽略该函数可能生成的任何错误。 不要滥用这个,因为它比使用if检查更快,但它是最短的代码替代。
答案 7 :(得分:0)
@
会抑制错误消息。
你云使用:
$file = 'script.php';
if(file_exists($file))
include($file);
答案 8 :(得分:-1)
function get_image($img_name) {
$filename = "../uploads/" . $img_name;
$file_exists = file_exists($filename);
if ($file_exists && !empty($img_name)) {
$src = '<img src="' . $filename . '"/>';
} else{
$src = '';
}
return $src;
}
echo get_image($image_name);
答案 9 :(得分:-3)
<?php
if(file_exists('file.php'))
include 'file.php';
}else{
header("Location: http://localhost/);
exit;
}