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ù)器的配置,因此不能保證在所有情況下都能正確工作。