我想用php检查远程网络服务器上是否存在文件。
我现在有这个功能:
function url_exists($url) {
// Version 4.x supported
$handle = curl_init($url);
if (false === $handle)
{
return false;
}
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_FAILONERROR, true); // this works
curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") );
// request as if Firefox
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, false);
$connectable = curl_exec($handle);
curl_close($handle);
return $connectable;
}
它工作正常,但如果我传递一个IP地址而不是域名,则返回false。 (所以我想查看http://123.456.789.121/test.jpg,当我发送http://somedomain.com/test.jpg时,它工作正常......)
有什么想法吗?
提前致谢!
答案 0 :(得分:3)
远程服务器可能使用Host
标头解析文件
如果是这样,您需要使用域名。
您可以明确地将Host
标头传递给IP地址,但我不推荐它。