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

関連する問題