После прочтения в разных местах, в том числе 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" . "'>";
}
Хотя я знаю, что есть лучшие, более тщательные способы поиска файла favicon в StackOverflow, я больше обеспокоен моим использованием @get_headers
, Часть из того, что я прочитал, предполагает, что cURL может быть полезен, или что я должен настроить пользовательский агент.
Собираюсь ли я столкнуться с трудностями с этим кодом в некоторых случаях, которые я не предвидел?
Лично я считаю, что get_headers — лучший способ в этом случае. Прежде всего, он выполняет запрос HEAD, который делает меньше нагрузки как на ваш, так и на удаленный хост (поскольку удаленный хост выдает только заголовки, а вашему серверу не нужно извлекать сам образ).
Я не думаю, что это вызовет какие-либо проблемы, и я не видел никаких проблем, вызванных использованием этой функции.
Других решений пока нет …