很多网站访客头像都使用的是Gravatar,通用的调用方法是无法自定义设置图片为头像的,如果访客留言时没有填写邮箱或者填写的邮箱没有设置Gravatar头像,那么调用出来的就是Gravatar设置的默认图片,想个性化访客头像的站长,看到这个会感觉很不爽,发现Gravatar输出头像时是可以判断的,通过这个判断我们就可以自定义设置访客的头像了;
下面就是EMLOG可设置默认图片的的Gravatar调用代码,把下面的代码复制到模版文件夹下的module.php文件里,在模版文件夹下新建个cache目录设置可写权限,在cache目录里在放一个默认头像图片命名为default.jpg,这样就可以当访客留言时没有填写邮箱或者填写的邮箱没有设置Gravatar头像时,显示站长设置的default.jpg这个图片。
<?php
function lanye_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);
}
function lanye_getavatar($email, $s = 40, $d = 'monsterid', $g = 'g') {
$hash = md5($email);
$avatar = "http://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
return $avatar;
}
function lanye_cacheavatar($mail,$size){
$hash = md5(strtolower($mail));
$error_url = 'http://cn.gravatar.com/avatar/'.$hash.'?d=404';
$cache_path = TEMPLATE_PATH.'cache';
if(!file_exists($cache_path)){mkdir($cache_path,0700);}
$avatar_http_url = TEMPLATE_URL.'cache/'.$hash.'.jpg';
$avatar_path_url = $cache_path."/".$hash.'.jpg';
$cache_time = 24*3600*30;
if(!file_exists($avatar_path_url) || (time()-filemtime($avatar_path_url)) > $cache_time){
if(lanye_httpcode($error_url)==200){$newavatar = lanye_getavatar($mail,$size);copy($newavatar,$avatar_path_url);}
else{copy($cache_path.'/default.jpg',$avatar_path_url);}
}
return $avatar_http_url;
}?>
调用例子:
<?php echo lanye_cacheavatar(邮箱地址,头像大小);?>
本文共 257 个字数,平均阅读时长 ≈ 1分钟
评论 (0)