检查是否存在具有绝对和相对路径的文件

uji*_*uji 10 php path

有没有办法检查文件(具有绝对或相对路径)是否存在?我正在使用PHP.我找到了几种方法,但要么他们只接受绝对或相对而不是两者.谢谢.

Ste*_*rov 26

file_exists($file); 为相对和绝对路径做诀窍.

然而,更有用的是拥有绝对路径而不对其进行硬编码.最好的方法是使用dirname(__FILE__)以UNIX或Windows格式获取当前文件的目录的完整路径.然后realpath(),如果文件不存在,我们可以使用哪个方便地返回false.那么你要做的就是从该文件的目录中指定一个相对路径并将它们放在一起:

$path = dirname(__FILE__) . '/include.php';
if (realpath($path)) {
    include($path);
}
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 6

您可以使用realpath检查给定路径是否存在文件并检索该文件的扩展路径:

$absPath = realpath($path);
if ($absPath === false) {
    // invalid path
}
Run Code Online (Sandbox Code Playgroud)


Rob*_*Rob 5

file_exists($path)将检查绝对路径或相对于脚本位置。如果您想检查相对于文档根目录,您可以尝试file_exists("{$_SERVER['DOCUMENT_ROOT']}path");

如果你想要一个同时采用相对路径和绝对路径的函数,这样的东西应该可以工作(未经测试):

function check_file($path) {
    return ( file_exists($path) || file_exists("{$_SERVER['DOCUMENT_ROOT']}path") );
}
Run Code Online (Sandbox Code Playgroud)