나는 이것에 붙어있어. 이 코드는 $ source 인수에 대한 gravatar 이미지를 가져옵니다. 나는 gravatar에 URL을 전달하고 그 결과가 이미지인지 404인지를 결정하려고 노력 중입니다.gravatar.com 요청이 404를 반환하는지 확인하는 방법
404가 default.png를 새로운 이미지로 복사하고 싶지 않으면 단지 default.png
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
이것을 확인하십시오 https://bugs.php.net/bug.php?id=52555 –