2

考虑到 favicon 并不总是位于基本 url,我需要一种从通用网页获取 favicon 的 URL 的方法。

ps 不使用外部服务。

4

5 回答 5

7

页面的图标始终位于

首先尝试对 /favicon.ico 的 HEAD 请求(CURL 应该能够做到这一点),如果这不起作用,请获取页面本身,解析 HTML 并查看是否可以找到匹配的标签。

于 2012-04-23T14:39:47.727 回答
3

您可以使用Simple HTML DOM Parser来获取内容并解析结果:

$html = file_get_html('http://www.google.com/');

$icon = '';
foreach($html->find('link') as $element) {
    if($element->rel == "shortcut icon" || $element->rel == "icon")
        $icon = $element->href;
}

link注意:上面的代码仅在元素中指定图标时才获取图标

于 2012-04-23T14:43:48.917 回答
1

您可以使用 HTML 解析器来查找包含网站图标信息的链接标签。type 属性应设置为“image/x-icon”,rel 属性为“shortcut icon”或“icon”。href 属性将是网站图标的地址。

于 2012-04-23T14:39:54.060 回答
1

使用S2 service 谷歌提供的。就这么简单

http://www.google.com/s2/favicons?domain=www.yourdomain.com
于 2017-03-11T03:30:11.803 回答
-2

为了将来使用,要使用 jQuery 获取页面的图标,您可以使用

jQuery('link[rel*=icon]').attr('href');
于 2012-04-23T14:45:49.317 回答