因为要给侧边栏加一个最近留言访客的头像,百度找了一圈方法发现效果都不太好。而且一些没有 Gravatar 头像显示的默认头像太 low 了。

下面的方法是把没有Gravatar头像的过滤掉,也过滤掉重复邮箱的访客,显示只有 Gravatar 头像的访客头像。

很简单加个判断就好了。

<?php
/**
* 调用网站用户的头像的函数设置
*/
function getGravatar_fk($email, $s = 40, $d = 'mm', $g = 'g') {
$hash = md5($email);
$avatar = 'https://www.gravatar.com/avatar/' . $hash . '?d=404';
return $avatar;
}

//调用网站里最新评论的访客的函数设置
function comment($num){
$t = Database::getInstance();
$sql = "SELECT * FROM ".DB_PREFIX."comment WHERE mail != '' GROUP BY poster ORDER BY `cid` DESC LIMIT $num";
$list = $t->query($sql);
while($row = $t->fetch_array($list)){
$headers = @get_headers(getGravatar_fk($row['mail']));
if (preg_match("|200|", $headers[0])) {
  echo '<li class="item tips-top" aria-label="'.$row['poster'].'"><a rel="nofollow" target="_blank" href="'.$row['url'].'"><img src="'.getGravatar_fk($row['mail']).'" class="avatar avatar-42" height="42" width="42" ></a></li>';
}
}
}

在侧边栏调用代码:<?php echo comment(20); ?> //20为要显示的访客数量

css 样式表自己修改即可。