Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查具有绝对路径和相对路径的文件是否存在_Php_Path - Fatal编程技术网

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

Php 检查具有绝对路径和相对路径的文件是否存在,php,path,Php,Path,是否有方法检查文件(具有绝对或相对路径)是否存在?我正在使用PHP。我找到了两种方法,但它们要么只接受绝对值,要么接受相对值,而不是两者都接受。谢谢。文件存在($path)将检查绝对路径或相对于脚本位置的路径。如果要检查相对于文档根目录的位置,可以尝试file\u exists(“{$\u SERVER['document\u root']}路径”) 如果您想要一个同时采用相对和绝对路径的函数,像这样的函数应该可以工作(未测试): file\u存在($file)对相对路径和绝对路径都执行此操作

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

文件存在($path)
将检查绝对路径或相对于脚本位置的路径。如果要检查相对于文档根目录的位置,可以尝试
file\u exists(“{$\u SERVER['document\u root']}路径”)

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

file\u存在($file)对相对路径和绝对路径都执行此操作

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

$path = dirname(__FILE__) . '/include.php';
if (realpath($path)) {
    include($path);
}
您可以使用检查给定路径中是否存在文件,并检索该文件的扩展路径:

$absPath = realpath($path);
if ($absPath === false) {
    // invalid path
}

如果文档根目录中不存在文件,请从远程url检查替换文件,我忘了提到这是什么逻辑。我想我试试罗布的答案。谢谢guysrealpath()返回规范路径,所以删除符号链接。有没有办法避免这种情况,并检查路径是绝对的,即使不是规范的?
$absPath = realpath($path);
if ($absPath === false) {
    // invalid path
}