file_exists,@ get_headers,cURL和检测图标

时间:2015-03-16 20:51:38

标签: php curl file-exists

在包括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可能很有用,或者我应该设置一个用户代理。

在某些我没有预料到的情况下,我是否会遇到这段代码的困难?

1 个答案:

答案 0 :(得分:1)

Personaly我认为get_headers是这种情况下最好的方法。首先,它执行HEAD请求,这对您和远程主机的负载较小(因为远程主机只提供标题,而您的服务器不需要自己获取图像)。

我真的不认为这会造成任何麻烦,而且我还没有看到因使用该功能而导致的任何问题。