Артём Мáлков

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

8 окт1 комм

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

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

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

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

Реализация:

<?php

	$url = "https://www.pandoge.com"; // Ссылка на сайт
	$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://www.pandoge.com

<script>

	$(function() {

		var link = "https://www.pandoge.com"; // Ссылка на сайт
		$("#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://www.pandoge.com">https://www.pandoge.com</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.

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

Рекомендуем к просмотру
Как удалить все буквы, цифры и спецсимволы в строке на PHP/JavaScript?
Статьи и советы
Как удалить все символы, кроме цифр, из строки на PHP/JavaScript?
Статьи и советы
Вывод аватара и ссылки на автора поста в WordPress
Статьи и советы
1
комментарий
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 6
    1066
      •  Команда Pandoge
    10 окт в 16:32

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

    Пример:

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

    Где «artem-malcov.ru» домен вашего сайта.

Подняться наверх
«Pandoge» - помощник вебмастера