如何获取不同网站的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以提高显示效果,如图:

开始做的时候想到的是利用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 <?php
2 if(isset($_GET['url'])){
3     $icon file_get_contents("http://www.google.com/s2/favicons?domain=" $_GET['url']);
4     if($icon){
5         header('Content-type:image/png');
6         echo $icon;
7     }
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的文件位置,直接获取它的内容即可。

时间: 2024-10-04 23:02:09

如何获取不同网站的favicon默认图标的相关文章

VB.NET获取文件默认图标的方法_vb.net

本文实例讲述了VB.NET获取文件默认图标的方法.分享给大家供大家参考.具体如下: 该段代码帮助你获取计算机上的任何文件的默认图标,使用Shell32.dll. Private Structure SHFILEINFO Public hIcon As IntPtr Public iIcon As Integer Public dwAttributes As Integer <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _ Public

给自己的网站制作一个favicon.ico图标的实现方法_经验交流

ico图标是网站的头像,在打开网站的时候出现在IE的地址栏里,目前大多数浏览器都支持,最常用的IE6.0则显示加入本地收藏夹网站的ICO图像: 绝大多数网站可以没有ICO头像,但如果做为一个一流的网站,没有ICO头像是很难令人信服的.就好象一个人穿了一身正装但却没有打领结一样冒失. 以下是一些名站的头像: Google0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height

为 iPhone 和 iPad 自定义网站的主屏幕图标

iPhone 和 iPad 等苹果设备使用主屏幕 (Home Screen, 也称桌面) 管理应用程序, 还可以通过浏览器的添加到主屏幕功能将网站链接作为快捷方式添加为主屏幕图标. 是否你也想过为网站定义一个图标, 如果用户将网站添加至主屏幕, 网站链接看起来更像原生程序, 也能获得更多的关注. 除了兼容手机端的浏览体验, 我们还能做得更多, 为 iPhone 和 iPad 自定义网站的主屏幕图标也算其中之一, 本文将对网站的主屏幕图标及其设定方法为进行详细介绍. 网站的主屏幕图标 iPhone

favicon.ico图标提取工具如何使用

  ps:Favicon是favorites icon的缩写,亦被称为website icon(网页图标).page icon(页面图标)或urlicon(URL图标). favicon.ico图标提取工具使用教程: 1.将下载的favicon.ico图标提取工具压缩文件进行解压,双击程序. 2.在网站链接位置输入要下载的网页favicon图标的网页地址. 3.点击查看,就将该网页的favicon图标下载下来了. 4.点击另存按钮,可以将下载的favicon图标文件保存在本地.        

如何设计FAVICON站点图标

  现代网页设计中最令人沮丧和感到混乱的莫过于网站图标了(favicon),是"favorite icon"的简称.这枚小小的图标一般出现在浏览器的选项卡里.地址栏处,根据我们操作系统和浏览器的不同,还有可能出现在其他地方. 我先给大家科普下:favicon,即Favorites Icon的缩写.favicon 就是出现在浏览器地址栏左侧的那个小图标.favicon,中文名称是网站头像.当然,这不仅仅是Favicon的全部,根据浏览器的不同,Favicon显示也有所区别:在大多数主流浏

网页favicon.ico图标设置(转)

随便打开一个网页:比如 http://www.baidu.com/ 可以看到在浏览器的标签头上面显示了一个图标,这个图标是:,也就是我们常说的favicon.ico.   由于这篇文章主要讨论favicon.ico,以及各个浏览器对其的不同处理,所以还是新建web项目如下:   home.html 代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <

Easyui Treegrid改变默认图标的方法_jquery

普通情况下,treegrid的图标是默认的文件夹与文件的形式,如下图: ​​​我们可以在json文本中加入iconCls来改变默认图标,例如样例中: ​{"total":7,"rows":[ {"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","

网站图标设计经验总结 网站中如何使用图标

网页制作Webjx文章简介:看高手如何设计ICON图标,以及在网站设计中使用图标. 不难发现,现在大部份网站都融入了图标,图标逐渐成为网站里重要的一部份,无论是导航,栏目内容,甚至是广告banner及场景-- 很多时候图标都充当着重要角色.在我们设计网页或是一些界面时,是否曾遇到这个图标不好用,那个图标有版权,这个颜色或角度不是我们需要的,那个不是我们要表达的含意-- 那么,我们需要自己设计图标. 图标设计,很多人都有自己的一套方法.这里我跟大家分享一下自己的一些小经验.先来看几个线稿与最终效果

如何更改Flash发布文件的默认图标

我们一般从事多媒体制作的人都知道,Flash是Macromedia公司的著名的多媒体制作软件,它易学易用,能够生成非常小的交互式的动画,而且利用它还能够生成脱离其编辑环境的EXE文件,但是我们发现用它制作的EXE文件的图标都是一样的,这样就使得制作出来的多媒体程序显得"千篇一律",那么我们能不能任意地更改发布文件的默认图标,给自己的作品来一点儿个性化的内容呢.经过笔者的分析,发现图标是存储在Flash的Runtime文件FlashPla.exe中,因此我们只要一个资源编辑器(ExeSc