考虑到 favicon 并不总是位于基本 url,我需要一种从通用网页获取 favicon 的 URL 的方法。
ps 不使用外部服务。
页面的图标始终位于
首先尝试对 /favicon.ico 的 HEAD 请求(CURL 应该能够做到这一点),如果这不起作用,请获取页面本身,解析 HTML 并查看是否可以找到匹配的标签。
您可以使用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
注意:上面的代码仅在元素中指定图标时才获取图标
您可以使用 HTML 解析器来查找包含网站图标信息的链接标签。type 属性应设置为“image/x-icon”,rel 属性为“shortcut icon”或“icon”。href 属性将是网站图标的地址。
使用S2 service
谷歌提供的。就这么简单
http://www.google.com/s2/favicons?domain=www.yourdomain.com
为了将来使用,要使用 jQuery 获取页面的图标,您可以使用
jQuery('link[rel*=icon]').attr('href');