PHP只允许is_file的完整路径


PHP only allow full path with is_file

我想知道文件是否存在,但前提是提供了完整的文件路径。

$file = "C://dir/dir/file.txt"; // should return true
$file = "file.txt" //should return false;

两个文件都存在,事实上它们是同一个文件。

function is_absolute_file($file){
    return is_file($file) && strpos($file, ":". DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR) === 1 ;
}

虽然这确实有效,但我必须对所有被砍的部分进行str_replace,以确保它们与DIRECTORY_SEPARATOR匹配。

一定有更好的办法。有什么想法吗?

您可以使用realpath()生成绝对路径,然后进行比较。

function is_absolute_path( $path ) {
  return ( $path == realpath( $path ) );
}

如果提供的路径已经是绝对路径,则它应该与realpath()生成的路径相同。