file_exists, @get_headers, cURL и обнаружение значка

После прочтения в разных местах, в том числе 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 может быть полезен, или что я должен настроить пользовательский агент.

Собираюсь ли я столкнуться с трудностями с этим кодом в некоторых случаях, которые я не предвидел?

0

Решение

Лично я считаю, что get_headers — лучший способ в этом случае. Прежде всего, он выполняет запрос HEAD, который делает меньше нагрузки как на ваш, так и на удаленный хост (поскольку удаленный хост выдает только заголовки, а вашему серверу не нужно извлекать сам образ).

Я не думаю, что это вызовет какие-либо проблемы, и я не видел никаких проблем, вызванных использованием этой функции.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]