2016-05-16 59 views
1

我想找到一个文件是否存在,但只有在提供完整的文件路径。PHP只允许完整路径与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 ; 
} 

虽然这工作,我会做所有的削减,以确保它们匹配DIRECTORY_SEPARATOR一个str_replace

必须有更好的方法。有任何想法吗 ?

+0

'“://”'........? –

+2

'realpath(file)== file' – splash58

回答

2

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

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

如果提供的路径已经是一个绝对的路径应该是与由realpath()生成的路径。

+0

完美,谢谢,我会尽快接受它 – TarranJones