如果 PHP 没有读取文件的权限,您将无法通过 file_exists() 或 is_readable() 检查文件是否存在,因为这些函数依赖于能够在服务器上本地访问文件。
唯一可行的解决方案是使用 HTTP 请求检查文件是否存在。
Alex 的 file_get_contents() 解决方案是一种方法,但您必须检查是否
allow_url_fopen = true
在你的 php.ini 中,所以
file_get_contents("http://www.seemeagain.com/users/1000002722/gallery_1312973080.jpg")
允许从 HTTP ( http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen ) 检索数据。
只要您的文件可以通过浏览器读取,您就可以检查是否存在,但您仍然需要下载整个文件,这会产生大量流量开销并且需要时间。
我的建议是使用
<?
$headers = get_headers("http://www.seemeagain.com/users/1000002722/gallery_1312973080.jpg");
if ($headers[0] == "HTTP/1.1 200 OK")
{
// Your file does exist
}
elseif($headers[0] == "HTTP/1.1 404 Not Found")
{
// Your file does not exist
}
else
{
// Some other headers...
highlight_string(print_r($headers,1));
}
?>