根据设置favicon的方式,就有2种读取favicon的方法:
A、默认直接读取网站根目录的favicon.ico文件。 (推荐学习:PHP视频教程)
B、如果不存在根目录下的favicon.ico文件,就读取页面里favicon的声明。
相比之下,获取网站根目录下的favicon.ico文件是最简单快捷的,但如果网站根目录下没有该文件,就需要使用后台程序读取网页的源代码,非常的麻烦。
使用PHP获取网站Favicon的方法
最近做一个Tab需要在网站名旁边显示网站的Favicon以提高显示效果,如图:
icetab开始做的时候想到的是利用Google的方式来获取,使用“http://www.google.com/s2/favicons?domain=网址”的方式可以直接获得网站的Favicon图标并以16*16大小图片的形式显示出来,这个方法简单方便,但在有些网络环境下却会出现图片无法显示的问题(需要翻墙),为了解决这个BUG我决定重新写一个获取Favicon的函数,使用自己的服务器以避免翻墙。
实际效果请参见示例:
http://favicon.byi.pw/?url=blog.icewingcc.com
如果不想自己写方法的话也可以使用我提供的接口,即“http://favicon.byi.pw/?url=网址”,网址可以带http://前缀。
代码(调用Google的方式,这种方式可以减少代码量,并且速度也比较快):
<?php if(isset($_GET['url'])){ $icon = file_get_contents("http://www.google.com/s2/favicons?domain=" . $_GET['url']); if($icon){ header('Content-type:image/png'); echo $icon; }
没错,就这几行代码搞定一切 ^_^
这样只要我们使用的服务器能够访问Google就可以正常显示出Favicon,不再受网络环境的影响。
以上是php获取网站ico的详细内容。更多信息请关注PHP中文网其他相关文章!