is_file()
函数是 PHP 中的一个内置函数,用于检查给定路径的文件是否存在,并且是一个常规文件
要检查远程文件是否存在,可以使用 fopen()
和 fclose()
函数结合 @
操作符来避免错误输出。这里有一个示例:
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 "文件不存在";
}
请注意,这种方法可能会产生一些性能开销,因为它实际上会尝试打开远程文件。另外,服务器可能会配置为禁止这种类型的检查,所以这种方法不是100%可靠。
更好的方法是使用 HTTP 头信息来检查文件是否存在。你可以使用 get_headers()
函数来获取远程文件的 HTTP 头信息,然后检查返回的状态码。这里有一个示例:
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 "文件不存在";
}
这种方法更可靠,也不会产生太多性能开销。但是,它仍然依赖于服务器的配置,因此不能保证在所有情况下都能正确工作。