溫馨提示×

如何用is_file判斷遠程文件存在

PHP
小樊
81
2024-09-10 09:54:18
欄目: 編程語言

is_file() 函數(shù)是 PHP 中的一個內(nèi)置函數(shù),用于檢查給定路徑的文件是否存在,并且是一個常規(guī)文件

要檢查遠程文件是否存在,可以使用 fopen()fclose() 函數(shù)結(jié)合 @ 操作符來避免錯誤輸出。這里有一個示例:

function remoteFileExists($url) {
    $handle = @fopen($url, "r");
    if ($handle) {
        fclose($handle);
        return true;
    } else {
        return false;
    }
}

$url = "http://example.com/somefile.jpg";
if (remoteFileExists($url)) {
    echo "文件存在";
} else {
    echo "文件不存在";
}

請注意,這種方法可能會產(chǎn)生一些性能開銷,因為它實際上會嘗試打開遠程文件。另外,服務(wù)器可能會配置為禁止這種類型的檢查,所以這種方法不是100%可靠。

更好的方法是使用 HTTP 頭信息來檢查文件是否存在。你可以使用 get_headers() 函數(shù)來獲取遠程文件的 HTTP 頭信息,然后檢查返回的狀態(tài)碼。這里有一個示例:

function remoteFileExists($url) {
    $headers = get_headers($url);
    return strpos($headers[0], '200') ? true : false;
}

$url = "http://example.com/somefile.jpg";
if (remoteFileExists($url)) {
    echo "文件存在";
} else {
    echo "文件不存在";
}

這種方法更可靠,也不會產(chǎn)生太多性能開銷。但是,它仍然依賴于服務(wù)器的配置,因此不能保證在所有情況下都能正確工作。

0