2016-05-16 64 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