8资源分享论坛 - 资源分享,资源共享|www.8ziyuan.com

标题: 如何获取不同网站的favicon默认图标 [打印本页]

作者: 佛罗里达    时间: 2018-7-11 21:10
标题: 如何获取不同网站的favicon默认图标
1、利用公共api提取任意网站favicon.ico图标如何读取favicon
根据设置favicon的方式,就有2种读取favicon的方法:

A、默认直接读取网站根目录的favicon.ico文件。
B、如果不存在根目录下的favicon.ico文件,就读取页面里favicon的声明。
相比之下,获取网站根目录下的favicon.ico文件是最简单快捷的,但如果网站根目录下没有该文件,就需要使用后台程序读取网页的源代码,非常的麻烦。


为了克服获取favicon的麻烦,应运而生了一些获取favicon的公共API,如:

dnspod:http://statics.dnspod.cn/proxy_favicon/_/favicon?domain=url网址【特别推荐】
google:http://www.google.com/s2/favicons?domain=域名
getFavicon:http://www.getfavicon.org/?url=url地址
g.etfv.co:http://g.etfv.co/url地址
对网络速度而言,dnspod是国内的,快速并且稳定。谷歌的稳定性值得信赖,但因为时常在墙外,而不得不放弃。第3个getFavicon是早期获取favicon的网站,目前已经game over了。第4个也是国外的,也是经常在某些地区无法正常访问。第1和第2个胜出一筹。

对于传递参数而言,dnspod和谷歌都是传参域名,第3和第4个是传参url。第3和第4个胜出一筹。

总体而言,4个都打成了平手。

如此境遇下,我开发了一款获取网站favicon的公共API,只需要在传入网址即可获取图片,目前服务器设置在香港,无国界的访问,可以获取任何网址的favicon。并且,图片具有缓存30天的期限,第2次获取同一个域名(含多级域名)的favicon会更加快速。使用方法也很简单,如:

获取百度的favicon

http://*/?url=http://www.baidu.com

获取谷歌的favicon

http://*/?url=http://www.google.com

获取facebook的favicon

http://*/?url=http://facebook.com

获取github的favicon

http://*/?url=http://github.com
因流量以及滥用关系,现已经跳转到dnspod服务器的favicon获取方式,请使用该API的朋友尽快迁徙,该API将于今年年底彻底关闭。请使用http://statics.dnspod.cn/proxy_favicon/_/favicon?domain=网站地址 来获取该网站的favicon。

2、使用PHP获取网站Favicon的方法
最近做一个Tab需要在网站名旁边显示网站的Favicon以提高显示效果,如图:
icetab.jpg
开始做的时候想到的是利用Google的方式来获取,使用“http://www.google.com/s2/favicons?domain=网址”的方式可以直接获得网站的Favicon图标并以16*16大小图片的形式显示出来,这个方法简单方便,但在有些网络环境下却会出现图片无法显示的问题(需要FQ),为了解决这个BUG我决定重新写一个获取Favicon的函数,使用自己的服务器以避免FQ。
实际效果请参见示例:
http://favicon.byi.pw/?url=blog.icewingcc.com
如果不想自己写方法的话也可以使用我提供的接口,即“http://favicon.byi.pw/?url=网址”,网址可以带http://前缀。
代码(调用Google的方式,这种方式可以减少代码量,并且速度也比较快):

  1. 1        <?php
  2. 2        if(isset($_GET['url'])){
  3. 3            $icon = file_get_contents("http://www.google.com/s2/favicons?domain=" . $_GET['url']);
  4. 4            if($icon){
  5. 5                header('Content-type:image/png');
  6. 6                echo $icon;
  7. 7            }
  8. 8
复制代码
没错,就这几行代码搞定一切 ^_^
这样只要我们使用的服务器能够访问Google就可以正常显示出Favicon,不再受网络环境的影响。
复杂些的方法就是自己写获取函数,这里我只提供思路,就不再写代码了,如果有需要代码可留言,定附上。
一般网站都会把自己的Favicon图标以“favicon.ico”命名并放在网站根目录下,如http://www.baidu.com/favicon.ico。所以可以直接使用PHP函数 file_get_contents()来获取图片内容,设置Header为PNG图片,显示出来即可。
如果根目录没有favicon.ico这个文件的话可以使用file_get_contents或CURL获取网页的内容,使用正则找到“ <link rel=”shortcut icon” href=”..” />”,href里面便是favicon的文件位置,直接获取它的内容即可。



作者: ‖饿狼传说‖    时间: 2018-7-11 21:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 獨占heart-    时间: 2018-7-14 01:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 杰宝宝i    时间: 2018-7-16 10:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 扰人心丶    时间: 2018-7-16 21:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: 久橙    时间: 2018-7-18 01:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: 竹排江中游    时间: 2018-7-18 04:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 巷弄    时间: 2018-7-19 01:37
666,这个可以支持!
作者: 祭奠‘这羁绊    时间: 2018-7-20 01:14
十分感谢
作者: 竹排江中游    时间: 2018-7-21 21:14
666,这个可以支持!
作者: 颓废ヤ心碎ゞ    时间: 2018-7-22 18:47
谢谢楼主分享
作者: 灵魂—堕落者    时间: 2018-7-23 17:28
太赞了!!!LZ!!!!
作者: 泪不肯走    时间: 2018-7-24 18:48
资源可用!谢谢分享!
作者: 带他滚    时间: 2018-7-25 19:24
好资源终于找到了<<如何获取不同网站的favicon默认图标>>
作者: 螎在ぺ長風裏    时间: 2018-7-27 20:19
多谢分享
作者: 落落清欢    时间: 2018-7-28 23:02
找了好久终于找到了
作者: 寂寞、变堕落    时间: 2018-7-30 05:16
多谢,谢谢楼主。
作者: 寒裳    时间: 2018-7-31 07:32
资源可用!谢谢分享!
作者: 让痛无所    时间: 2018-8-1 10:35
多谢,谢谢楼主。
作者: 沙漠里的鱼    时间: 2018-8-3 19:33
十分感谢
作者: Penniless    时间: 2018-8-5 04:35
太赞了!!!LZ!!!!
作者: 我瞎不见光i    时间: 2018-8-5 09:36
金币不够了回复有金币吗
作者: 限量版女汉子i    时间: 2018-8-6 16:54
<<如何获取不同网站的favicon默认图标>>
作者: 脆弱让人放纵    时间: 2018-8-8 01:37
感谢分享啊:aixin:
作者: 只剩淡漠    时间: 2018-8-9 11:03
感谢分享
作者: 残花可以败柳    时间: 2018-8-10 03:24
找了好久终于找到了
作者: 烟久    时间: 2018-8-10 04:13
好资源终于找到了<<如何获取不同网站的favicon默认图标>>
作者: 呼吸    时间: 2018-8-10 04:31
<<如何获取不同网站的favicon默认图标>>
作者: 爱⌒轻易说出口    时间: 2018-8-10 08:27
金币不够了回复有金币吗
作者: 沵魡管眞寬♂    时间: 2018-8-10 13:49
<<如何获取不同网站的favicon默认图标>>
作者: 梦想永遠在騷動    时间: 2018-8-10 14:15
找了好久终于找到了
作者: 冒牌货    时间: 2018-8-10 14:22
<<如何获取不同网站的favicon默认图标>>
作者: 請把小熊还给我    时间: 2018-8-10 14:46
谢谢楼主分享
作者: 伴凯终老    时间: 2018-8-10 17:56
666,这个可以支持!
作者: 泪点是你    时间: 2018-8-10 18:42
强烈感谢
作者: 二次元的妹子    时间: 2018-8-10 19:30
感谢分享
作者: 苝海莈冇猫    时间: 2018-8-10 20:15
资源可用!谢谢分享!
作者: 你太碍眼    时间: 2018-8-10 20:18
<<如何获取不同网站的favicon默认图标>>
作者: hudiednf    时间: 2019-6-1 21:40
感谢你的分享,论坛有你更加的精彩




欢迎光临 8资源分享论坛 - 资源分享,资源共享|www.8ziyuan.com (https://www.8ziyuan.com/) Powered by Discuz! X3.4