0
我被困在此。此代码为$ source参数提取一张gravatar图片。我试图确定如何将URL传递给gravatar,并确定结果是否是图像或404。如果它是一个404,我不想将default.png复制到新图像中,我只是想使用为Default.png如何确定gravatar.com请求是否返回404
function cb_gravatar($source) {
$time = 1209600; //The time of cache(seconds)
preg_match('/avatar\/([a-z0-9]+)\?s=(\d+)/', $source, $tmp);
$abs = TEMPLATEPATH.
'/gravatar-cache/'.$tmp[1].
'.jpg';
$url = get_bloginfo('template_directory').
'/gravatar-cache/'.$tmp[1].
'.jpg';
$default = get_bloginfo('template_directory').
'/gravatar-cache/'.
'default.png';
if (!is_file($abs) || (time() - filemtime($abs)) > $time) {
//copy('http://www.gravatar.com/avatar/'.$tmp[1].'?s=64&d='.$default.'&r=G',$abs);
//IF REQUEST RETURNS A 404 USE THE LOCAL DEFAULT.PNG
copy('http://www.gravatar.com/avatar/'.$tmp[1].
'?s=32&d=404&r=G', $abs);
}
if (filesize($abs) < 500) {
copy($default, $abs);
}
return '<img alt="" src="'.$url.
'" class="avatar avatar-'.$tmp[2].
'" width="'.$tmp[2].
'" height="'.$tmp[2].
'" />';
}
对。我想我可以更直接地询问我的问题,但是关键是,如何检查上面分支中的http结果代码? – RegEdit 2013-03-06 07:10:48
检查这个 https://bugs.php.net/bug.php?id=52555 – 2013-03-06 07:53:46