参考文章:

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的文件位置,直接获取它的内容即可。

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

  1. 如何给网站设置favicon.ico图标

    favicon.ico是什么? 所谓favicon,即Favorites Icon的缩写,顾名思义,便是其可以让浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站. favicon.ic ...

  2. html网页logo属性link,html元素link标签rel=icon添加网站favicon.ico图标

    html元素中的link标签除了可以引用插入CSS样式表文件之外,还可以通过link标签设置网站的favicon.icon图标. 什么是favicon.icon图标? 网站favicon.ico图标, ...

  3. php网站如何添加ico图标,如何添加favicon.ico图标?

    在本站首页的活跃博客中经常看到有部分博客网站没有favicon.ico图标,所以今天打算普及一下相关知识,希望还没有favicon.ico图标的博主们,能够制作出自己独特的图标. 那么到底什么是fav ...

  4. favicon自动获取_php获取网站favicon.ico图标 api源码 自动获取并添加Favicon图标

    通常情况下,做网站的都会给自己的网站添加一个Icon,浏览器上一长排的标签页,用Icon来区分就显得更加醒目.现在想找一个没有Icon的网站并不好找,可见没有Icon的网站是多么的业余啊." ...

  5. 为chrome书签栏中,没有默认图标的网站添加图标

    书签栏中总有几个网站没有默认的favicon图标,强迫症当然是不能忍的. <如何修改 Chrome 书签栏中的网站 Favicon 图标>介绍了修改任意图标的办法 有点麻烦,而且我的需求只 ...

  6. 网站的favicon图标和TDK的SEO优化

    网站的favicon图标 favicon.ico一般用于作为缩略的网站标志,它显示在浏览器的地址栏或者标签上. 目前主要的浏览器都支持favicon.ico图标. 一.制作favicon图标 1.把图 ...

  7. HTML设置浏览器默认favicon.ico图标

    需求描述: 有些业务场景需要不展示或者动态展示浏览器标签页图标,不展示时则使用浏览器默认的图标.(特别是之前设置过浏览器标签页图标,直接删除link标签是没用的) 解决方案: 修改link标签href ...

  8. 根据文件名或文件扩展名获取文件的默认图标

    新建一个vs2010 窗体项目,新建按钮button和图片picturebox 下面是程序 using System; using System.Collections.Generic; using ...

  9. 如何给网站制作一个favicon.ico图标

    如何给网站制作一个favicon.ico图标,附代码(图) ico图标是网站的头像,在打开网站的时候出现在IE的地址栏里,目前大多数浏览器都支持,最常用的IE6.0则显示加入本地收藏夹网站的ICO图像 ...

最新文章

  1. C# 单精度转换双精度丢失的问题
  2. 人工智能升格为国家战略 唐小僧积极发展金融科技
  3. 和泰c语言函数库,合泰杯 | 合泰单片机入门 编程详解(二)
  4. 百炼OJ:2750:鸡兔同笼
  5. 基于Python技术栈的算法落地踩坑
  6. 分布式工具的一次小升级⏫ 1
  7. jvm默认的初始化参数_您是否应该信任JVM中的默认设置?
  8. 前端学习(2887):如何短时间内实现v-for createApp解决方案
  9. 代码块是什么?该如何使用?
  10. Linux进程最大socket数,Linux下高并发socket最大连接数所受的各种限制(详解)
  11. python生存曲线_Python从零开始第五章生物信息学⑤生存分析(log-rank)
  12. PHP 实现文件下载
  13. GB28181协议之实时视频
  14. 分享:第十届“泰迪杯”数据挖掘挑战赛优秀作品--A1-基于深度学习的农田害虫定位与识别研究(一)
  15. 【Unity项目实战】手把手教学:飞翔的小鸟(1)导入素材
  16. qt 设置按钮大小_QT使用教程(四)之初体验
  17. 手工扒网页模板简单流程
  18. python中函数调用
  19. iOS开发 图片选择器、图片多选功能的实现
  20. ubuntu cannot start pycharm, Required tools are missing: realpath***

热门文章

  1. Linux调试——gdb调试器的简单使用调试coredump文件
  2. 获取打印的html代码怎么写,javascript如何输出?
  3. 基于MATLAB的交流电动机调速系统仿真
  4. 2020-12-14 Matlab 模糊控制 车辆泊车 案例分享
  5. CSS学习02之css导入方式
  6. Java8中的流操作-基本使用性能测试
  7. Android开发如何进阶?
  8. JavaScript中getter/setter的实现
  9. mysql dba系统学习(12)mysql的数据文件 mysql dba系统学习(13)mysql的体系结构
  10. Visio画大括号、花括号