如果你喜欢随手收藏网站,并且希望能存储在“云端”,而你恰好拥有自己的网站主机,也许你可以试试自己动手编写一个独一无二的收藏夹……
如果你每次在博客添加“友链”的时候都要手动找图片充当友链图标,也许你希望有一种方法能够自动获取友链图标……
如果你无聊到蛋疼,连每周五的《暴走大事件》都安抚不了你寂寞的心,也许会希望找些有意思的小东西来排遣……
好了前面是废话,下面贴上我用于实现获取 favicon.ico 的代码(PHP): ̄□ ̄||
1.测试页面 test.php:
if(isset($_POST['url'])){
include 'domain.php';
$favicon=getFavicon($_POST['url']);
set_time_limit(0);//避免连接超时,设定对程序运行时间未做限制
$handdle=@fopen($favicon, 'r');//打开远程文件
$content=null;
if($handdle){
echo 'from web!';
while($data=@fread($handdle,500000)){
$content.=$data;
}
fclose($handdle);
}else{
echo 'from local!';//如果没有获取到远程文件,你需要在本地准备一个default.ico用作缺省值
$handdle=fopen('pic/default.ico', 'r');//打开模式为r
$content=fread($handdle,filesize('pic/default.ico'));//读为二进制
fclose($handdle);
}
echo getDomain($_POST['url']);
$file = fopen('pic/'.getDomain($_POST['url']).'.ico', 'w');//准备写入,文件名是域名
fwrite($file,$content);//写入
fclose($file);//关闭
}
2.测试页面 include 的 domain.php 文件:
function getDomain($url){ //截取玉米
if(stristr($url,"://")){
$start=stripos($url,"://");
if($end=stripos($url,"/",$start+3)) return substr($url,$start+3,$end-$start-3);
else return $url;
}else{
if($end=stripos($url,"/")) return substr($url,0,$end);
else return $url;
}
}
function getFavicon($url){ //生成favicon.ico路径
$domain=getDomain($url);
return "http://".$domain."/favicon.ico";
}
3.提交用到的表单:
<form action="test.php" method="post">
<input type="text" name="url">
<input type="submit" value="获取">
</form>
虽然没人看但还是要说原创内容转载请注明出处就是这么任性(-__-)b
版权属于:香菇
本文链接:https://blog.siitake.cn/php-get-favicon.html
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!