如何仅包含文件存在

时间:2011-01-05 14:11:05

标签: php

我需要一个include函数/语句,只有文件存在时才包含该文件。 PHP中有一个吗?

您可能建议使用@include但该方法存在问题 - 如果要包含的文件存在,如果解析器在包含的文件中发现错误,PHP将不会输出警告。

10 个答案:

答案 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;

    }