在包括http://php.net/manual/en/function.file-exists.php在内的各个地方阅读后,我有以下工作代码,用于检测给定主机是否为例如。 http://example.com有一个位于/favicon.ico
$file = 'http://www.easyjet.com/favicon.ico';
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.0 200 OK') {
//place favicon as an image on the page
echo "<img src ='" . $file . "'>";
} else {
//place default image
echo "<img src ='" . "globe.jpg" . "'>";
}
虽然我知道有更好,更彻底的方法在StackOverflow上寻找一个favicon文件,但我更关心的是我对@get_headers
的使用。我读过的一些内容表明cURL可能很有用,或者我应该设置一个用户代理。
在某些我没有预料到的情况下,我是否会遇到这段代码的困难?
答案 0 :(得分:1)
Personaly我认为get_headers是这种情况下最好的方法。首先,它执行HEAD请求,这对您和远程主机的负载较小(因为远程主机只提供标题,而您的服务器不需要自己获取图像)。
我真的不认为这会造成任何麻烦,而且我还没有看到因使用该功能而导致的任何问题。