因本接口压力过大,接口停止对外服务!源码请去我github获取

很多人可能并不知道这个接口有啥作用,其实谷歌也有这个接口,不过最近使用不管用了,所以才自己写了一个,大家可以看这个例子 这里是列出了我的网站中所有的友情链接,和本站的网站接口链接的兄弟连功能,每个链接前面的图片,就是对应网站域名的favicon.ico图片,可以看一下这个图片是如何读取的,我们查看源代码:

v3版本升级信息 因为此接口的使用者过多,使用过于频繁。为了分担压力,遂升级接口为异步逐条处理,并引入缓存机制,升级操作只需要在v2接口的基础上在你需要使用此接口的页面底部添加一个js,放到body以内,jquery以下即可。

此js其实是一个服务端脚本,此脚本会周期性(一般为一天一次)修改密钥,并将密钥拼入到 v2使用的接口地址中,接口服务端会对此密钥校验。所以,如果还希望继续使用,请添加此js到页面底部,此脚本依赖jquery,请确认页面已经加载了jquery,将此js放到jquery下方即可。 给您带来的不便敬请谅解。随时欢迎交流。谢谢。 v2版本升级信息 近期通过监控,发现此接口使用频率极高,日志文件一周也已200多M,目前有近100个域名使用接口查询域名300多个,于是对本接口升级,同时,代码为早期开发,漏洞较多,对代码进行了优化,同时代码非常简单,鼓励大家可以自己实现。 1、引入缓存机制,以周为单位,缓存域名的ico图片,缓存每周日更新并支持手动更新缓存,如有需要请使用http://www.521php.com/api/fav/的form表单删除缓存 缓存地址为:http://www.521php.com/api/fav/images/ 2、使用方式优化,可以使用取消是否添加http的限制,即www.521php.com和http://www.521php.com都可以使用 3、接口代码有修改,新代码:https://github.com/zhangcunchao/www521phpcom/blob/master/html/api/fav/index.php以下为v1版本:

我们通过这个代码读取了后面这个域名的favicon.ico图片,如果我们之间访问src后面的整个链接,也是可以看到这个网站的favicon.ico图片,这样就达到了我们的目的,读取指定网站的favicon.ico图片。 实例展示: http://www.521php.com/api/fav/?url=www.zhaochun.net 接口url http://www.521php.com/api/fav/ 说明: 他需要一个参数url,即你要读取网站的网址 原理: 原理其实很简单,我们通过file_get_contnets函数,读取指定的域名下的favicon.ico这个图片,如果能够读取到,就声明header为图片类型进行输出,这里大家可以查一下header声明的用法,这就是为什么图片能显示为图片,下载能够下载的原理。而如果读取不到,我们给他个默认图片即可!这里要注意的就是,有的网站的这个图片并不一定在根目录,少部分是用了一个类似这样的标签<link rel=”shortcut icon” href=”favicon.ico” />来获取这个图片的,所以我们就要加以判断,如果根目录下没有这个图片的,要在其页面中判断是否有这个标签,有就获取这个标签里的图片。

写的很简单其实,大家其实都可以做一个自己的接口而如何使用: <img src=”http://www.521php.com/api/fav/?url=指定的域名即可” width=”20″ height=”20″ /> 本文链接:http://www.521php.com/archives/1210/

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/1210/?replytocom=9901

目前有22 条留言

  1. 2013年10月07日 上午 11:00 brucmao   |  引用  |  #1     

    终于找到一个可用的了,以前都用google的接口,能不能做成书签的形式,点击它就能获得当前网页的ico图标

    • 2013年10月11日 上午 9:27 地狱中仰望天堂   |  引用  |  #2     

      这个当然是可以的,用ajax

      • 2013年10月11日 下午 10:33 brucmao   |  引用  |  #3     

        不太明白,能给出具体书签地址么,我想直接拖动到书签栏,

        • 2013年10月12日 上午 9:26 地狱中仰望天堂   |  引用  |  #4     

          我又不太明白你说的了,是说的网站、web程序功能吗?

          • 2013年10月12日 上午 9:30 brucmao   |  引用  |  #5     

            比如,下面这个是我站内搜索的书签,点击它就能调用google在当前网站搜索,比在google 里输入语法要快 site:www.xxx.com

            javascript:var%20ax=prompt(‘%E8%B0%B7%E6%AD%8C%E7%AB%99%E5%86%85%E6%90%9C%E7%B4%A2\n%E8%AF%B7%E8%BE%93%E5%85%A5%E6%90%9C%E7%B4%A2%E5%85%B3%E9%94%AE%E5%AD%97′,”);if(ax.length>0){window.open(‘https://www.google.com/search?hl=zh-CN&client=firefox&q=site:’+encodeURIComponent(location.hostname)+’%20′+encodeURIComponent(ax))};void(0)

            我是希望你的这个获取网页ico的功能能不能做成书签

  2. 2014年05月05日 下午 12:37 毒舞   |  引用  |  #6     

    IE下无法显示啊

  3. 2014年06月07日 上午 12:00 兔兔   |  引用  |  #8     

    非常感谢,终于找到一款可用的了。

  4. 2014年09月09日 下午 9:14 KevinLi   |  引用  |  #9     

    发现有一些站获取不到,不知道为什么
    比如 url=www.csdn.net,麻烦楼主看看该怎么办

    • 2014年09月09日 下午 11:07 地狱中仰望天堂   |  引用  |  #10     

      这个是这样的,他的ico地址用的link引入, ,所以需要考虑这种规则,之前写的这个,只是考虑了rel在前的,一会改一下

  5. 2014年09月12日 下午 11:44 冰翼   |  引用  |  #11     

    你这个没有缓存功能,而且缺少对应的错误处理,file_get_contents函数容错不好,建议使用另一个接口 http://api.byi.pw/favicon?url=xxx,速度快而且稳定

    • 2014年09月15日 上午 9:46 地狱中仰望天堂   |  引用  |  #12     

      这个是很久之前写的,的确是用file_get_contents不好,他可能会造成很高的cpu占用等等,用curl代替也可以,我写的目的只是为了学习和做这样问题的思路。如果真要好好做,就一个api来说,如果真要对外服务,怎么可能会这样草率的用这样的服务呢

  6. 2014年11月26日 下午 10:12 chonghua   |  引用  |  #13     

    博主,我的图标过段时间就会失效,而且直接访问链接也会提示图片错误,下载到本地显示正常,ftp也设置过二进制上传,不知道该怎么办了,以前也没遇到过这种情况

    • 2014年11月28日 下午 3:43 地狱中仰望天堂   |  引用  |  #14     

      你是什么的服务器?win?你的服务器可能中毒了吧,你用nodepad++什么大打开图片看一下,很可能开头已经有加码了

  7. 2015年03月07日 上午 10:44 天使の记忆   |  引用  |  #15     

    我的网站怎么不能显示我自己网站的友情链接图标呢?

  8. 2015年03月07日 上午 10:45 天使の记忆   |  引用  |  #17     

    是需要提交吗?还是修改源代码?

  9. 2015年05月03日 上午 2:20 myhloli   |  引用  |  #19     

    博主你好,如果友链网站没有ico图标,就会加载这个超字的默认ico,请问有什么办法自定义默认ico么,感觉一个页面出现太多黑底图和页面风格不搭

  10. 2015年12月10日 上午 10:52 www.w88983.com   |  引用  |  #22     

    不要因为自己还年轻,用健康去换去金钱,等到老了,才明白金钱却换不来健康。

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter