温馨提示: 这篇文章于2988天前编写,现在可能不再适用或落后.

Gravatar头像是很多博客都在使用的一个头像,但是如果一个用户没有该网站的头像呢?而且该头像还需要翻墙才可以注册(好像是吧)。

PHP也可以做到判断头像,但是我查阅了很多相关信息,都得出一个结论,慢。真的很慢,每出现一个评论者就会加载一次。

PHP判断头像存在都是用以下代码实现。

方法1:

<?php
$email = "123456@qq.com";
$md5 = md5(strtolower(trim($email)));
$url = "https://cn.gravatar.com/avatar/".$md5."?d=404";
$headers = get_headers($url);
if (preg_match("/404/", $headers[0])) {
    return false;//不存在头像
} else {
    return true;//存在头像
}
?>
```以上代码就可以实现判断email是否存在头像的方法,但是这个方法很慢,严重降低了网站的访问速度。

  

其实要做到显示自己自定义头像很简单,不必要去判断Email是否存在,只需要在头像链接后面加上一个参数即可,再用js或jq获取自定义头像并显示~

  
<?php //在头像链接后面加上 ?d=404 即可 function get_gravatar($email) { $email = md5(strtolower(trim($email))); return ""; } ?> <script> $(".avatar").error(function(){用JQ的方法判断头像是否加载错误来改成默认头像即可 $(this).attr("src","https://www.acgxt.com/images/default.png");//this获取当前属性attr替换src的内容 }); </script>

方法2(最有效)

感谢[Ibear](https://www.acgxt.com/goto.php?url=aHR0cDovL2liZWFyLmZva2l0ZS5jb20=),直接在d参数后面输出默认头像地址即可
<?php function get_gravatar($email) { $email = md5(strtolower(trim($email))); return ""; } ?>

```  注意:另外,此方法仅测试是wp远程获取默认头像的,所以本地测试无效!

效果实现了,如果不是做什么大事以上代码即可

    阁下需要登录后才可以查看评论哦~

    随便看看

      载入中...

      正在准备穿越次元,阁下请稍等片刻~