验证Gravatar头像是否存在并缓存至服务器
<?php function validate_gravatar($Verification_email) { $email = $Verification_email; // 要验证的Email地址 $hash = md5(strtolower(trim($email))); $uri = 'http://www.gravatar.com/avatar/' . $hash . '?d=404'; $headers = @get_headers($uri); if (!preg_match("|200|", $headers[0])) { return FALSE; } else { return true; } } //使用 if(validate_gravatar($value['mail'])=='true'){ $gface_url = "http://www.gravatar.com/avatar/".md5($value['mail'])."?size=32&d=".TEMPLATE_URL."images/ava_d.gif"; }else{ $gface_url = TEMPLATE_URL.'images/gravatar/'.rand(1,5).'.jpg'; }echo $gface_url; ;?> <?php //gravatar头像缓存 function ting_avatar( $email) { if(validate_gravatar($email)=='true'){ $gfile_path=EMLOG_ROOT."/content/uploadfile/ting/avatar/"; //缓存文件夹路径 if(!file_exists($gfile_path)){ mkdir($gfile_path,0755); } $gmd5 = md5( strtolower( $email ) );//根据email的值来生成一个md5变量值,作为本地.jpg头像的名字 $gimg = BLOG_URL."/content/uploadfile/ting/avatar/g_" . $gmd5. ".jpg";//avatar相对路径 $gfile = $gfile_path.'g_'. $gmd5. '.jpg';//缓存的头像的绝对路径 $gtime = 24*3600*15; //单位s,设置更新时间为15天 if (!file_exists($gfile) || (time()-filemtime($gfile)) > $gtime){ //不是第一次留言留言且留言时间超过15天就更新头像 $gimg_url = 'http://www.gravatar.com/avatar/'. $gmd5; // 旧服务器 (哪个快就开哪个) copy($gimg_url, $gfile); //将$gimg_url代表的网络图片复制到$gfile代表的本地服务器中 } }else{$gimg = TEMPLATE_URL .'images/ting.png';//自定义的头像 } echo $gimg; } ?>1
使用 在模板文件夹下面打开module文件,找到
<?php echo getGravatar($comment['mail']); ?>
替换成
<?php echo ting_avatar( $comment['mail']); ?>
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《IT技术宅》。
- 本文网址:https://www.ilt.me/emlog/5.html
- 上篇文章:巧用百度SiteApp的代码使EMLOG判断进入手机页面
- 下篇文章:Chrome浏览器于今日将自动停播Flash广告