验证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;
}
?>

版权所有:《IT技术宅》 => 《验证Gravatar头像是否存在并缓存至服务器
本文地址:http://www.qq-tv.cn/?post=17
除非注明,文章均为 《IT技术宅》 原创,欢迎转载!转载请注明本文地址,谢谢。