Gravatar头像分流服务被墙的纠结

8

gravatar

今天发现我这里0.gravatar.com挂掉了,满屏幕的XX实在是刺眼,于是想做一个类似小偷的图床放到国外服务器上去来做一个中转,想到了就马上着手去做

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
define( 'PATH', dirname(__FILE__) . '/' );
 
//截取对应字段
$url = $_SERVER["REQUEST_URI"];
preg_match_all("/(avatar\/\?)(.*?)(\?s=)/", $url, $key);
$key = $key['2']['0'];
$key = (isset($key) && ctype_alnum($key) ? $key : '07b979c71a73f11087a78102b320fe14');
preg_match_all("/(s=)(.*?)(&d=)/", $url, $s);
$s = $s['2']['0'];
$s = (isset($s) && is_numeric($s) ? $s : 32);
$r = substr ($url, -1);
$r = (isset($r) && ctype_alnum($r) ? $r : 'G');
$d = PATH . "07b979c71a73f11087a78102b320fe14.dat"; //默认头像
 
$gravatar_cache = PATH . $key . ".dat";
 
//判断头像是否存在
if (!is_file($gravatar_cache)) {
	$gravatar = 'http://www.gravatar.com/avatar/'.$key.'?s='.$s.'&d='.$d.'&r='.$r;
	copy($gravatar, $gravatar_cache);
	if (filesize($gravatar_cache) == 0) {
		copy($d, $gravatar_cache);
	}
}
 
$gravatar_cache_value = file_get_contents($gravatar_cache); //FALSE if 404
header('Content-type: image/jpeg');
echo $gravatar_cache_value;
unset ($gravatar_cache_value);
exit;

修改,测试,呼呼,终于OK,木有问题了,正准备插入到WP中去的时候,找到了pluggable.php中调用Gravatar的代码,猛然一惊,可以直接拿WP开刀,把头像的调用全部改成带WWW的主服务器就结了嘛!得白干了

打开wp-includes/pluggable.php找到下面的一段

1
2
3
4
5
6
7
8
	if ( is_ssl() ) {
		$host = 'https://secure.gravatar.com';
	} else {
		if ( !empty($email) )
			$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
		else
			$host = 'http://0.gravatar.com';
	}

直接屏蔽掉,修改成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
	if ( is_ssl() ) {
		$host = 'https://secure.gravatar.com';
	} else {
		if ( !empty($email) )
			$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
		else
			$host = 'http://0.gravatar.com';
	}
*/
	if ( is_ssl() ) {
		$host = 'https://secure.gravatar.com';
	} else {
		$host = 'http://www.gravatar.com';
	}

问题解决,做无用功了。

共 8 条评论

  1. 回复

    一般我很少遇到这种问题!

    • 回复

      但是我们博客的访客常遇到啊·

  2. 回复

    路过看看,留个脚印再拜读

    • 回复

      欢迎来访!

  3. 回复

    我的博客也需要去做下这佣,要不评论都没有好看的头像功能。

    • 回复

      呵呵,话说先去Gravatar申请一个自己的头像,然后在后台开启就可以了

  4. 回复

    e …又一个被墙了啊。。。伟大的天朝正在构建世界最大的局域网

    • 回复

      木有办法啊,眼睁睁的,无能为力。

李木进行回复 X

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...