我需要一种方法从通用网页获取favicon的URL,因为favicon并不总是在基本网址上。
P.S。不使用外部服务。
答案 0 :(得分:7)
页面的favicon始终位于
首先尝试针对/favicon.ico的HEAD请求(CURL应该可以这样做),如果这不起作用,请获取页面本身,解析HTML并查看是否可以找到匹配的标记。
答案 1 :(得分: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
元素
答案 2 :(得分:1)
您可以使用HTML解析器查找包含favicon信息的链接标记。 type属性应设置为“image / x-icon”,rel属性为“快捷图标”或“图标”。 href属性将是favicon的地址。
答案 3 :(得分:1)
使用S2 service
由谷歌提供。它就像这个一样简单
http://www.google.com/s2/favicons?domain=www.yourdomain.com
答案 4 :(得分:-2)
为了将来使用,要使用jQuery获取页面的favicon,您可以使用
jQuery('link[rel*=icon]').attr('href');