Генератор favicon   •   Online-инструменты
330 просм
1 комм
Поделиться:

Как получить favicon сайта по его URL на PHP/jQuery

Если на вашем сайте есть внешние ссылки (ссылки на другие ресурсы), например, в комментариях или в соответствующем разделе, типа каталога сайтов, вам может потребоваться (для более красивого оформления ссылки) получение favicon сайта, персональной его иконки.

Как это можно сделать, я сейчас подробно расскажу.

Как получить favicon сайта по его URL на PHP

В PHP основную идею реализации мы заложим в класс «DOMDocument», с помощью которого получим содержимое указанной страницы и найдем в ее коде ссылку на favicon.

Реализация:

<?php
	$url = "https://artem-malcov.ru"; // Ссылка на сайт
	$content = new DOMDocument();
	$content->strictErrorChecking = FALSE;
	@$content->loadHTML(file_get_contents($url));
	$xml = simplexml_import_dom($content);
	$arr = $xml->xpath('//link[@rel="shortcut icon"]');
	if($arr) {
		echo "<img src=".$arr[0]['href']." alt='favicon'>";
	}
?>

Ссылку в примере заменяете на свою.

Как получить favicon сайта по его URL на jQuery

В jQuery в качестве помощника мы воспользуемся сервисом Google, а именно – ссылкой «https://www.google.com/s2/favicons?domain=». Если мы подставим в нее нужный нам домен, то получим favicon сайта.

Реализация:

<span id="result"></span> https://artem-malcov.ru

<script>
	$(function() { 
		var link = "https://artem-malcov.ru"; // Ссылка на сайт
		$("#result").html('<img src="https://www.google.com/s2/favicons?domain=' + link + '" alt="favicon">');
	});
</script>

Где «#result» – это id элемента, в который необходимо вывести результат.

Если вы имеете блок ссылок, то можно немного автоматизировать работу скрипта:

<ul>
	<li><a href="https://vk.com">https://vk.com</a></li>
	<li><a href="https://artem-malcov.ru">https://artem-malcov.ru</a></li>
	<li><a href="https://yandex.ru">https://yandex.ru</a></li>
	<li><a href="https://www.google.ru">https://www.google.ru</a></li>
</ul>

<script>
	$(function() {
		$("ul li a[href^='http']").each(function() {
			$(this).prepend('<img src="https://www.google.com/s2/favicons?domain=' + this.href + '" alt="favicon">');
		});
	});
</script>

В таком случае ко всему блоку ссылок добавится их favicon.

Если возникли трудности в использовании одного из способов – пишите об этом в комментариях.

1
комментарий
Говоря в способе на jQuery - у Yandex'а тоже есть ссылка, по которой можно получить favicon сайта.

Пример:

https://favicon.yandex.net/favicon/artem-malcov.ru

Где «artem-malcov.ru» домен вашего сайта.
  • 0
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария