Получаем иконки других сайтов
Иногда возникает необходимость выводить на своем ресурсе изображения иконок (favicon) других сайтов. Иконки можно конечно и вручную скопировать и сохранить на своем сайте, но что делать, если Вам нужно получить иконку не одного, а нескольких сотен сайтов. При этом стоит учесть, что у некоторых сайтов иконки со временем могут измениться. Да и хранить все эти иконки на своем сайте нет особого смысла.
Можно конечно подгружать иконки и напрямую с других сайтов по ссылкам наподобие этой: http://usefulscript.ru/favicon.ico
Но как быть в том случае, если в данный момент сайт, с которого подгружается его иконка, временно недоступен или защитил свои изображения от хотлинкинга?
Что такое хотлинкинг и как с ним бороться Вы можете почитать в другой теме нашего сайта - Как защитить свои изображения от хотлинка.
Так вот для того чтобы получить иконку интересующего нас сайта, предлагаем Вам воспользоваться простой функцией на PHP, которая обратится к серверу Google и получит от него иконку необходимого нам сайта.
Таким образом, при каждом обновлении странички PHP функция сама будет обращаться к серверу Google и получать от него актуальную иконку от нужного нам сайта, и Вы не будете зависеть от того работает ли сейчас сайт, иконка которого Вам потребовалась или нет.
Предлагаемый нами PHP код довольно прост и выглядит следующим образом:
<?php
echo "<img src=".get_favicon("usefulscript.ru").">";
function get_favicon($url){
$url = str_replace("http://", "", $url);
$url = str_replace("https://", "", $url);
return "https://www.google.com/s2/favicons?domain=".$url;
}
?>
Для наглядности работы данного скрипта ниже мы получаем иконки некоторых сайтов:
- https://ya.ru
- https://www.google.ru
- https://www.sape.ru
- https://www.liveinternet.ru
Надеемся, данная хитрость Вам пригодится при использовании ссылок на сторонние ресурсы, т.к. таким образом ссылки станут гораздо ярче и красивее. Подобного рода хитрость будет очень полезна для разного рода каталогов и рейтингов сайтов.
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
<?php
if (isset($_POST["site"])){
$url = "https://www.google.com/s2/favicons?domain=".str_replace("http://",'',$_POST["site"]);
echo "<img src=".$url."> - ".$_POST["site"];
}
?>
<form method="POST"><input type="text" name="site"><input type="submit"></form>