很多网站的友情链接前都有该网站的ICO图标,这样美化了友情链接的展示样式很好看;在谷歌还能访问的时候,很多都用谷歌的ICO图标接口,现在不能用了,国内也有一些ICO图标调用接口,但都不是很好,蓝叶思考了下,还是自己写个友情链接的ICO图标缓存代码吧;
下面的代码,就是获取网站根目录下的favicon.ico图标然后缓存到本地再调用出来,代码原理是先检测友情链接网站的favicon.ico是否存在是否能正常访问,如果正常则缓存到本地,否则缓存一个设置好的图标调用,这样提高了速度,不会每次都去检测缓存,只有过了30天后再检测一次;
新添加的链接缓存图标时有些慢,等待完成刷新下页面就可以看到正常显示了。有需要的就把下面代码复制到模版的module.php里,然后在需要的地方调用。
说明:使用这个代码需要在模版目录下新建个文件夹为favicon并设置可写权限,在这个文件夹下放个命名为link.png图片文件做为默认调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?php function httpcode($url){ $ch = curl\_init(); $timeout = 3; curl\_setopt($ch,CURLOPT\_FOLLOWLOCATION,1); curl\_setopt($ch,CURLOPT\_RETURNTRANSFER,1); curl\_setopt($ch, CURLOPT\_HEADER, 1); curl\_setopt ($ch, CURLOPT\_CONNECTTIMEOUT, $timeout); curl\_setopt($ch,CURLOPT\_URL,$url); curl\_exec($ch); return $httpcode = curl\_getinfo($ch,CURLINFO\_HTTP\_CODE); curl\_close($ch); }?> <?php function favicon\_file($site\_url){ $diy\_fav = $site\_url."favicon.ico"; $site\_md5 = md5($diy\_fav); $fav\_url = TEMPLATE\_URL.'favicon/'; $fav\_path = TEMPLATE\_PATH.'favicon/'; $t = 2592000; if(is\_file($fav\_path.$site\_md5.'.png') == false (time() - filemtime($fav\_path.$site\_md5.'.png')) > $t) { if(httpcode($diy\_fav) == 200){copy($site\_url.'favicon.ico',$fav\_path.$site\_md5.'.png');}else{ copy($fav\_path.'link.png',$fav\_path.$site\_md5.'.png'); } }else{$endurl = $fav\_url.$site\_md5.'.png';}
return $endurl; }?>
|
使用方法:
1
| <img width="16" height="16" src="<?php echo favicon\_file($value\['url'\]); ?>" alt="<?php echo $value\['link'\]; ?>" style="padding-right:5px;" />
|
转载蓝叶博客