<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>邪罗刹的菠萝阁 &#187; gravatar</title>
	<atom:link href="http://www.rainmoe.com/tag/gravatar/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rainmoe.com</link>
	<description>One code, one world ...</description>
	<lastBuildDate>Thu, 29 Dec 2011 14:04:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WP-Gravatar-Mini-Cache_V1.0.2插件更新</title>
		<link>http://www.rainmoe.com/2010/10/18/wp-gravatar-mini-cache-v102/</link>
		<comments>http://www.rainmoe.com/2010/10/18/wp-gravatar-mini-cache-v102/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 19:53:08 +0000</pubDate>
		<dc:creator>小邪</dc:creator>
				<category><![CDATA[作品 [Work]]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.evlos.org/?p=2090</guid>
		<description><![CDATA[> 此文是关于 WP-Gravatar-Mini-Cache V1.0.2 相关文章，听说国内无法访问 Gravatar CDN 服务器。

> 然后是一个关于 WP-Gravatar-Mini-Cache V1.0.3 的新思路，但是小邪不知道效果怎样，请求测试。



<span class="readmore"><a href="http://www.rainmoe.com/2010/10/18/wp-gravatar-mini-cache-v102/" title="WP-Gravatar-Mini-Cache_V1.0.2插件更新">阅读全文——共6466字</a></span>]]></description>
			<content:encoded><![CDATA[<p>> 此文是关于 WP-Gravatar-Mini-Cache V1.0.2 相关文章，听说国内无法访问 Gravatar CDN 服务器。<br />
> 然后是一个关于 WP-Gravatar-Mini-Cache V1.0.3 的新思路，但是小邪不知道效果怎样，请求测试。</p>
<p><img src="http://www.rainmoe.com/wp-content/uploads/2010/10/Cap0001935a.png" alt="" title="" width="600" height="278" class="alignnone size-full wp-image-2099" /></p>
<p><span id="more-2090"></span><strong>一. WP-Gravatar-Mini-Cache V1.0.2：</strong></p>
<p>> 官网托管地址 - <a target='_blank' rel='nofollow' href='http://wordpress.org/extend/plugins/wp-gravatar-mini-cache/'>http://wordpress.org/extend/plugins/wp-gravatar-mini-cache</a></p>
<p><img src="http://www.rainmoe.com/wp-content/uploads/2010/10/Cap0001935b.png" alt="" title="" width="600" height="205" class="alignnone size-full wp-image-2099" /></p>
<p><strong>二. WP-Gravatar-Mini-Cache 的由来声明：</strong></p>
<p>> 那个，小邪觉得应该稍微解释一下这个<em>头像缓存插件的由来</em>，不然总是感觉有点尴尬的说。╮( -'`-; )╭。<br />
> 因为看到很多盆友在<em>插件出问题的时候去找Willin大湿解决，其实这是小邪的问题，不该麻烦大湿的</em>。</p>
<p>> 话说 WP-Gravatar-Mini-Cache v1.0.0 起源于最初 Willin大湿 的《簡易的 Gravatar 頭像緩存》。<br />
> 由于当时未使用 HOOK 方式，所以小邪加上了 HOOK，然后使用正则等方法来处理数据输入输出。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
//下面的是最初大湿的那段代码，引用位置在 - http://kan.willin.org/?p=1277
$f = md5(strtolower($comment-&gt;comment_author_email));
$a = get_bloginfo('wpurl'). '/avatar/'. $f. '.jpg';
$e = ABSPATH. 'avatar/'. $f. '.jpg';
$t = 1209600; //設定14天, 單位:秒
$d = get_bloginfo('wpurl'). '/avatar/default.jpg';
if ( !is_file($e) || (time() - filemtime($e)) &gt; $t ){ //頭像不存在或文件超過14天才更新
  $r = get_option('avatar_rating');
  $g = 'http://www.gravatar.com/avatar/'. $f. '?s=50&amp;d='. $d. '&amp;r='.$r;
  copy($g, $e); $a = esc_attr($g); //新頭像 copy 時, 取 gravatar 顯示
}
if (filesize($e) &lt; 500) copy($d, $e);
</pre>
<p>> 然后 Willin大湿 发布了《新版 Gravatar 緩存》，在这里面添加了 Hook 方法，就小邪当初目的一致了。<br />
> 而且大湿重新优化了这段代码，使用很巧妙的方式来处理数据的输入输出，这是大家普遍使用的版本。<br />
> 但到这个<em>新版本这，就和小邪的插件木有关系了</em>噢。小邪的插件在后面进行了代码功能调整之类的动作。<br />
> 所以插件如果出问题，请大家不要去找 Willin 大湿，<em>大湿要郁闷的呢</em>。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
//下面是大湿升级之后的代码，引用位置在 - http://kan.willin.org/?p=1320
function my_avatar($avatar) {
  $tmp = strpos($avatar, 'http');
  $g = substr($avatar, $tmp, strpos($avatar, &quot;'&quot;, $tmp) - $tmp);
  $tmp = strpos($g, 'avatar/') + 7;
  $f = substr($g, $tmp, strpos($g, &quot;?&quot;, $tmp) - $tmp);
  $w = get_bloginfo('wpurl');
  $e = ABSPATH .'avatar/'. $f .'.jpg';
  $t = 1209600; //設定14天, 單位:秒
  if ( !is_file($e) || (time() - filemtime($e)) &gt; $t ) { //當頭像不存在或文件超過14天才更新
    copy(htmlspecialchars_decode($g), $e);
  } else  $avatar = strtr($avatar, array($g =&gt; $w.'/avatar/'.$f.'.jpg'));
  if (filesize($e) &lt; 500) copy($w.'/avatar/default.jpg', $e);
  return $avatar;
}
add_filter('get_avatar', 'my_avatar');
</pre>
<p>> 下面是小邪插件的核心代码，最近在 v1.0.2 发布的时候又进行了部分的优化，祝大家用的愉快，呵呵。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
function get_cavatar($source) {
	$time = 1209600;
	preg_match('/avatar\/([a-z0-9]+)\?s=(\d+)/',$source,$tmp);
	$abs = ABSPATH.'wp-content/plugins/wp-gravatar-mini-cache/iava/'.$tmp[1].'.jpg';
	$url = get_bloginfo('wpurl').'/wp-content/plugins/wp-gravatar-mini-cache/iava/'.$tmp[1].'.jpg';
	$default = get_bloginfo('wpurl').'/wp-content/plugins/wp-gravatar-mini-cache/iava/'.'default.jpg';
	if (!is_file($abs)||(time()-filemtime($abs))&gt;$time){
		copy('http://www.gravatar.com/avatar/'.$tmp[1].'?s=64&amp;d='.$ava_default.'&amp;r=G',$abs);
	}
	if (filesize($abs)&lt;500) { copy($default,$abs); }
	return '&lt;img alt=&quot;&quot; src=&quot;'.$url.'&quot; class=&quot;avatar avatar-'.$tmp[2].'&quot; width=&quot;'.$tmp[2].'&quot; height=&quot;'.$tmp[2].'&quot; /&gt;';
}
add_filter('get_avatar','get_cavatar');
</pre>
<p><strong>三. 一个新思路 WP-Gravatar-Mini-Cache V1.0.3：</strong></p>
<p>> 小邪最近一直在考虑是否把插件升级到 v1.0.3 版，此版本是直接取代官方的 get_avatar 函数的。<br />
> 其实也就是在官方基础上增加了缓存部分，但由于函数提取自 WP 3.0.1，所以不知道各版本兼容性如何。<br />
> 先贴出来，请各位不同版本的盆友测试，有兴趣的也可以玩玩，祝大家玩得愉快，o(*￣▽￣*)ゞ。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
//P.s. 其实把 &lt;? 和 ?&gt; 之间的全部代码贴到 function.php 中也行的。
&lt;?
/*
Plugin Name: WP Gravatar Mini Cache
Plugin URI: http://www.evlos.org/2010/10/18/wp-gravatar-mini-cache-v102/
Description: 迷你 Gravatar 头像缓存插件，可以将 Gravatar 头像缓存至本地，以加快加载速度，使其不受 Gravatar 服务器连接速度的影响。Wordpress mini-gravatar-cache plugin, can cache the avatars from gravatar server, and speed up the loading.
Author: Evlos
Version: 1.0.3
Author URI: http://www.evlos.org/
*/

if ( !function_exists( 'get_avatar' ) ) :
function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
	if ( ! get_option('show_avatars') )
		return false;

	if ( false === $alt)
		$safe_alt = '';
	else
		$safe_alt = esc_attr( $alt );

	if ( !is_numeric($size) )
		$size = '96';

	$email = '';
	if ( is_numeric($id_or_email) ) {
		$id = (int) $id_or_email;
		$user = get_userdata($id);
		if ( $user )
			$email = $user-&gt;user_email;
	} elseif ( is_object($id_or_email) ) {
		// No avatar for pingbacks or trackbacks
		$allowed_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );
		if ( ! empty( $id_or_email-&gt;comment_type ) &amp;&amp; ! in_array( $id_or_email-&gt;comment_type, (array) $allowed_comment_types ) )
			return false;

		if ( !empty($id_or_email-&gt;user_id) ) {
			$id = (int) $id_or_email-&gt;user_id;
			$user = get_userdata($id);
			if ( $user)
				$email = $user-&gt;user_email;
		} elseif ( !empty($id_or_email-&gt;comment_author_email) ) {
			$email = $id_or_email-&gt;comment_author_email;
		}
	} else {
		$email = $id_or_email;
	}

	if ( empty($default) ) {
		$avatar_default = get_option('avatar_default');
		if ( empty($avatar_default) )
			$default = 'mystery';
		else
			$default = $avatar_default;
	}

	if ( !empty($email) )
		$email_hash = md5( strtolower( $email ) );

	if ( is_ssl() ) {
		$host = 'https://secure.gravatar.com';
	} else {
		if ( !empty($email) )
			$host = sprintf( &quot;http://%d.gravatar.com&quot;, ( hexdec( $email_hash{0} ) % 2 ) );
		else
			$host = 'http://0.gravatar.com';
	}

	if ( 'mystery' == $default )
		$default = &quot;$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}&quot;; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
	elseif ( 'blank' == $default )
		$default = includes_url('images/blank.gif');
	elseif ( !empty($email) &amp;&amp; 'gravatar_default' == $default )
		$default = '';
	elseif ( 'gravatar_default' == $default )
		$default = &quot;$host/avatar/s={$size}&quot;;
	elseif ( empty($email) )
		$default = &quot;$host/avatar/?d=$default&amp;amp;s={$size}&quot;;
	elseif ( strpos($default, 'http://') === 0 )
		$default = add_query_arg( 's', $size, $default );

	if ( !empty($email) ) {
		$out = &quot;$host/avatar/&quot;;
		$out .= $email_hash;
		$out .= '?s='.$size;
		$out .= '&amp;amp;d=' . urlencode( $default );

		$rating = get_option('avatar_rating');
		if ( !empty( $rating ) )
			$out .= &quot;&amp;amp;r={$rating}&quot;;

//--- WP Gravatar Mini Cache v1.0.3 --- Start ------------------------------

	$ev_time = 1209600;
	if (!is_dir(ABSPATH.'ev-iava/')) { mkdir(ABSPATH.'ev-iava/'); }
	$ev_abs = ABSPATH.'ev-iava/'.$email_hash.'_'.$size.'.jpg';
	$ev_url = get_bloginfo('wpurl').'/ev-iava/'.$email_hash.'_'.$size.'.jpg';
	if (!is_file($ev_abs)||(time()-filemtime($ev_abs))&gt;$ev_time){
		copy($out,$ev_abs);
	}
	$out = $ev_url;

//--- WP Gravatar Mini Cache v1.0.3 --- End --------------------------------

		$avatar = &quot;&lt;img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' /&gt;&quot;;
	} else {

//--- WP Gravatar Mini Cache v1.0.3 --- Start ------------------------------

	$ev_abs = ABSPATH.'ev-iava/'.$size.'.jpg';
	$ev_url = get_bloginfo('wpurl').'/ev-iava/'.$size.'.jpg';
	if (!is_file($ev_abs)||(time()-filemtime($ev_abs))&gt;$ev_time){
		copy($default,$ev_abs);
	}
	$default = $ev_url;

//--- WP Gravatar Mini Cache v1.0.3 --- End --------------------------------

		$avatar = &quot;&lt;img alt='{$safe_alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' /&gt;&quot;;
	}

	return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
}
endif;
?&gt;
</pre>
<p><strong>四. 结束语：</strong></p>
<p>> 那么就这样咯，o(*￣▽￣*)ゞ。嘿嘿，喜欢折腾的童鞋请走这边 - <a target='_blank' rel='nofollow' href='http://kan.willin.org/?p=1320'>http://kan.willin.org/?p=1320</a><br />
> 跟小邪一样的懒人和不熟悉代码的盆友走这边 - <a target='_blank' rel='nofollow' href='http://wordpress.org/extend/plugins/wp-gravatar-mini-cache/'>http://wordpress.org/../wp-gravatar-mini-cache</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rainmoe.com/2010/10/18/wp-gravatar-mini-cache-v102/feed/</wfw:commentRss>
		<slash:comments>199</slash:comments>
		</item>
		<item>
		<title>WP插件Gravatar-Mini-Cache</title>
		<link>http://www.rainmoe.com/2010/01/25/my-first-plugin-mini_gravatar_cache/</link>
		<comments>http://www.rainmoe.com/2010/01/25/my-first-plugin-mini_gravatar_cache/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 05:40:57 +0000</pubDate>
		<dc:creator>小邪</dc:creator>
				<category><![CDATA[作品 [Work]]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.evlos.org/?p=1908</guid>
		<description><![CDATA[> 小邪发现其实插件并不是那么难写，只要搞清楚 WP 的 Hook 功能就可以很能搞出一个插件，很简单喔。

> 那个，说真的，小邪以前其实对自己不懂又貌似很复杂的东东总觉得怕怕的，但一咬牙就很快学会鸟。



<span class="readmore"><a href="http://www.rainmoe.com/2010/01/25/my-first-plugin-mini_gravatar_cache/" title="WP插件Gravatar-Mini-Cache">阅读全文——共534字</a></span>]]></description>
			<content:encoded><![CDATA[<p>> 小邪发现其实插件并不是那么难写，只要搞清楚 WP 的 Hook 功能就可以很能搞出一个插件，很简单喔。<br />
> 那个，说真的，小邪以前其实对自己不懂又貌似很复杂的东东总觉得怕怕的，但一咬牙就很快学会鸟。</p>
<p><img src='http://www.rainmoe.com/wp-content/uploads/old/Cap0000010.jpg' /></p>
<p><span id="more-1908"></span><strong>一. 简单安装 Install：</strong></p>
<p>> 通用老方法，先解压缩，然后把 Mini-gravatar-cache 目录放到 WordPress 中 Wp-content 的 Plugins 里。<br />
> 接着再进入 WP 的后台插件管理，找到 Mini Gravatar Cache 这个插件，最后启用这个插件就 OK 咯。</p>
<p><img src="http://www.rainmoe.com/wp-content/uploads/2010/01/Cap0001917.png" alt="" title="" width="600" height="440" class="alignnone size-full wp-image-2087" /></p>
<p><strong>二. 关于 WP-Gravatar-Mini-Cache v1.00：</strong></p>
<p>> 由于 <a target='_blank' rel='nofollow' href='http://kan.willin.org/'>willin大湿</a> 更新了他原本的代码，并且修改成了 Hook 形式，而小邪则是另辟蹊径，达到类似的效果。<br />
> 所以小邪的这个插件应该算是分支衍生版本吧。呵呵，用得开心就好，喜欢折腾就用Willin，懒人用小邪。</p>
<p>> WordPress官网下载传送门 - <a target='_blank' rel='nofollow' href='http://wordpress.org/extend/plugins/wp-gravatar-mini-cache/'>http://wordpress.org/extend/plugins/wp-gravatar-mini-cache/</a></p>
<p><strong>三. Update：</strong></p>
<p>> 老页面存档 - <a target='_blank' rel='nofollow' href='http://www.evlos.org/2009/01/04/original_my-first-plugin-mini_gravatar_cache/'>http://www.evlos.org/2009/01/04/original_my-first-plugin-mini_gravatar_cache/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rainmoe.com/2010/01/25/my-first-plugin-mini_gravatar_cache/feed/</wfw:commentRss>
		<slash:comments>233</slash:comments>
		</item>
		<item>
		<title>Willin迷你Gravatar缓存修改版</title>
		<link>http://www.rainmoe.com/2010/01/20/modified-version-of-mini-gravatar-caching-program/</link>
		<comments>http://www.rainmoe.com/2010/01/20/modified-version-of-mini-gravatar-caching-program/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 11:49:11 +0000</pubDate>
		<dc:creator>小邪</dc:creator>
				<category><![CDATA[作品 [Work]]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[gravatar]]></category>

		<guid isPermaLink="false">http://www.evlos.org/?p=1881</guid>
		<description><![CDATA[> 最近老拿万戈老兄的文章来做题材，小邪都脸红鸟，╮(╯▽╰)╭，正在灰常用力地寻找灵感中。

> 万戈兄写了《WordPress gravatar 头像缓存补充说明》，小邪立马就换上了迷你缓存。



<span class="readmore"><a href="http://www.rainmoe.com/2010/01/20/modified-version-of-mini-gravatar-caching-program/" title="Willin迷你Gravatar缓存修改版">阅读全文——共450字</a></span>]]></description>
			<content:encoded><![CDATA[<p>> 最近老拿万戈老兄的文章来做题材，小邪都脸红鸟，╮(╯▽╰)╭，正在灰常用力地寻找灵感中。<br />
> 万戈兄写了《<a target='_blank' rel='nofollow' href='http://wange.im/gravatar-buffer-supplement-in-wordpress.html'>WordPress gravatar 头像缓存补充说明</a>》，小邪立马就换上了迷你缓存。</p>
<p><img src='http://www.rainmoe.com/wp-content/uploads/old/Capture1159.jpg' /></p>
<p>> 但是因为小邪分别有多个地方都要用到显示头像，所以小邪把程序的主要代码隔离了出来。<br />
> 以减少空间占用。同时文中还有怎样编写回调函数的简单介绍，以此送给小邪的盆友 <a target='_blank' rel='nofollow' href='http://fatkun.com'>Fatkun</a>。</p>
<p><span id="more-1881"></span><strong>一. 使用方法：</strong></p>
<p>> 呵呵，这里需要一个邮箱地址作为参数即可，/iava/iava.php?co=4tyle8@gmail.com。<br />
> 像上面那行一样子填写就好咯，那么具体的在 WP 中的代码如下，小邪多举一些例子。</p>
<p><strong>1. 评论模板处头像：</strong></p>
<p>> 额，因为小邪的模板代码有点儿旧，没有使用 Wp_list_comments 函数，所以不需回调。<br />
> 如果在模板的 Comments.php 中发现了 Wp_list_comments 函数，请参考<a target='_blank' rel='nofollow' href='http://wange.im/diy-wordpress-comment-style.html'>万戈兄的文章</a>。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
&lt;img src=&quot;/iava/iava.php?co=&lt;?php echo ($comment-&gt;comment_author_email);
?&gt;&quot; height=&quot;32&quot; width=&quot;32&quot; /&gt;
</pre>
<p><strong>2. WP-RecentComments 插件侧栏：</strong></p>
<p>> 修改处位于 wp-recentcomments/core.php，请按照下面的样子填入正确位置。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
// 当默认头像来自 &quot;/wp-recentcomments/avatars/&quot; 目录时
} else if ($default != '') {
	$file = 'wp-content/plugins/wp-recentcomments/avatars/' . $default;
	if (file_exists($file)) {
		$file = get_bloginfo('siteurl') . '/' . $file;
		$avatar = '&lt;div class=&quot;rc_avatar rc_' . $position . '&quot;&gt;' .
get_avatar($email, $size, $file) . '&lt;/div&gt;';
	}
// 当不包含默认头像时
} else {
	$avatar = '&lt;div class=&quot;rc_avatar rc_' . $position . '&quot;&gt;&lt;img
src=&quot;http://tool.evlos.org/iava/iava.php?co='. md5(strtolower($email))
.'&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;';
}
</pre>
<p><strong>3. WP-Thread-Comment 插件嵌套：</strong></p>
<p>> 修改处位于此插件后台控制面板中的 “编辑评论的HTML” 处，请按需要填入正确位置。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
&lt;img src=&quot;/iava/iava.php?co=&lt;?php echo ($comment-&gt;comment_author_email);
?&gt;&quot; height=&quot;24&quot; width=&quot;24&quot; /&gt;
</pre>
<p>> 万戈兄原文传送门 - <a target='_blank' rel='nofollow' href='http://wange.im/gravatar-buffer-supplement-in-wordpress.html'>http://wange.im/gravatar-buffer-supplement-in-wordpress.html</a></p>
<p><strong>二. Willin迷你Gravatar缓存小邪修改版：</strong></p>
<p><img src='http://www.rainmoe.com/wp-content/uploads/old/Capture1160.jpg' /></p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
&lt;?php
if (isset($_GET['co'])) {
	$ava_mail_md5 = $_GET['co'];
	$ava_mail_md5 = md5(strtolower($ava_mail_md5));
	$ava_url = './imgs/'.$ava_mail_md5.'.jpg';
	$ava_save_time = 1209600;
	$ava_default = 'http://'.$_SERVER[&quot;HTTP_HOST&quot;].
dirname($_SERVER['SCRIPT_NAME']).'/default.jpg';
	if (!is_file($ava_url)||(time()-filemtime($ava_url))&gt;$ava_save_time){
		$ava_get_url = 'http://www.gravatar.com/avatar/'.$ava_mail_md5.'?
s=32&amp;d='.$ava_default.'&amp;r=G';
		copy($ava_get_url,$ava_url);
	}
	if (filesize($ava_url)&lt;500) {
		copy($ava_default, $ava_url);
	}
	header('location: '.$ava_url);
}
?&gt;
</pre>
<p>> Willin原版程序传送门 - <a target='_blank' rel='nofollow' href='http://willin.heliohost.org/?p=1277'>http://willin.heliohost.org/?p=1277</a></p>
<p><strong>三. Header 函数的特殊用法：</strong></p>
<p>> 小邪之所以把这个用法放在一个独立的标题下面讲，是因为小邪发现这样用特爽。<br />
> 比如有一张图片的地址是 http://www.evlos.org/1.jpg，那么我们就这样。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
&lt;?php header('location: http://www.evlos.org/1.jpg'); ?&gt;
</pre>
<p>> 把这段代码保存为一个 PHP 文件，比如 http://www.evlos.org/2.php。<br />
> 然后我们这样子用，浏览器显示的确是上面 1.jpg 的样子，感觉特爽。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
&lt;img src=&quot;http://www.evlos.org/2.php&quot; /&gt;
</pre>
<p>> 这样子可是妙用无穷喔，小邪就不多举例子鸟，(*^__^*) 嘻嘻，祝玩得开心。</p>
<p><strong>四. 如何编写回调函数：</strong></p>
<p>> Fatkun 问了小邪如何编写回调函数的问题，那么这些内容就送给 Fatkun 咯。<br />
> 大家有兴趣的就一起看喔，打酱油的盆友，就帮小邪研究一下下面图片是否清晰吧。</p>
<p><img src='http://www.rainmoe.com/wp-content/uploads/old/Capture1158.png' /></p>
<p>> 小邪举一个最简单的例子，想必大家一定都能理解回调函数如何编写了喔。</p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
$func_cont = 'echo $a+$b+$c;';
$func_val = '$a,$b,$c';
$func = create_function($func_val,$func_cont);
$func(1,2,3);
</pre>
<p>> 变量 $func_val 里面存储的是函数的变量，而 $func_cont 存储的则是函数内容。<br />
> 咱们使用 Create_function 来建立这个函数，然后就可以使用咯，不难的喔。</p>
<p>> 吼吼，小邪去看《24小时》第三、四两集咯，看完再到博友博客上转悠转悠 O(∩_∩)O。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rainmoe.com/2010/01/20/modified-version-of-mini-gravatar-caching-program/feed/</wfw:commentRss>
		<slash:comments>125</slash:comments>
		</item>
		<item>
		<title>缓存Wp-recentcomments头像</title>
		<link>http://www.rainmoe.com/2009/10/12/wp-recentcomments-avatar-cache/</link>
		<comments>http://www.rainmoe.com/2009/10/12/wp-recentcomments-avatar-cache/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 11:53:21 +0000</pubDate>
		<dc:creator>小邪</dc:creator>
				<category><![CDATA[代码 [Code]]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[comment]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.evlos.org/?p=547</guid>
		<description><![CDATA[网上大多都是直接引用 [/cache/avatar/] 目录的头像

但是这个插件涉及到PHP字符串

新手可能会搞糊涂  在这里稍微提示下

<span class="readmore"><a href="http://www.rainmoe.com/2009/10/12/wp-recentcomments-avatar-cache/" title="缓存Wp-recentcomments头像">阅读全文——共402字</a></span>]]></description>
			<content:encoded><![CDATA[<p>网上大多都是直接引用 [/cache/avatar/] 目录的头像<br />
但是这个插件涉及到PHP字符串<br />
新手可能会搞糊涂  在这里稍微提示下<br />
此插件的作者Mg12的注解很规范  看 [Core.php] 代码 </p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
// 当不包含默认头像时
} else {
$avatar = '&lt;div class=&quot;rc_avatar rc_' . $position . '&quot;&gt;
' . get_avatar($email, $size) . '&lt;/div&gt;';
}
</pre>
<p>我们需要修改下字符串<br />
在PHP里的"."符号是连接字符串的意思<br />
所以我们要在DIV标签后面加上IMG标签<br />
这里的md5函数需要进行PHP运算 所以要在单引号的外面 </p>
<pre class="brush: php; auto-links: false; html-script: false; title: ; notranslate">
// 当不包含默认头像时
} else {
$avatar = '&lt;div class=&quot;rc_avatar rc_' . $position . '&quot;&gt;
&lt;img src=&quot;缓存插件目录/cache/avatar/'. md5(strtolower($email)) .'&quot; /&gt;&lt;/div&gt;';
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rainmoe.com/2009/10/12/wp-recentcomments-avatar-cache/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>如何设置Gravatar</title>
		<link>http://www.rainmoe.com/2009/10/06/how-to-create-a-gravatar/</link>
		<comments>http://www.rainmoe.com/2009/10/06/how-to-create-a-gravatar/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 03:04:54 +0000</pubDate>
		<dc:creator>小邪</dc:creator>
				<category><![CDATA[探索 [Explore]]]></category>
		<category><![CDATA[comment]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[mail]]></category>

		<guid isPermaLink="false">http://www.evlos.org/?p=334</guid>
		<description><![CDATA[什么是Gravatar：

&#62; 当你在别人的博客留言时

&#62; 只需输入正确的E-mail地址即可显示自己事先设定好的头像

<span class="readmore"><a href="http://www.rainmoe.com/2009/10/06/how-to-create-a-gravatar/" title="如何设置Gravatar">阅读全文——共874字</a></span>]]></description>
			<content:encoded><![CDATA[<p>什么是Gravatar：<br />
&gt; 当你在别人的博客留言时<br />
&gt; 只需输入正确的E-mail地址即可显示自己事先设定好的头像</p>
<p>&gt;&gt; 送给 Xue.Xin </p>
<p>步骤：<br />
&gt; 首先进入<a href="http://en.gravatar.com/">http://en.gravatar.com/</a> - 暂时不支持中文<br />
&gt; 点击 Gat your gravatar<br />
&gt; 输入你的E-mail地址<br />
&gt; 点击 Sign Up<br />
&gt; Confirmation email sent! 表示你得到邮箱里去收封确认信<br />
&gt; 你会收到一封 Welcome to Gravatar 的信<br />
&gt; 点击类似于如下的长链接<br />
&gt; http://en.gravatar.com/accounts/activate/xxxx%40gmail.com/69aad2bd11<br />
&gt; 在Username里填入用户名 Password里填入密码 输俩次 密码一定要字母与数字混合<br />
&gt; 点击 Add one by clicking here!<br />
&gt; 点击 My computer's hard drive 在你电脑里选择头像的位置<br />
&gt; 点击 Next<br />
&gt; 把要当做头像的图片部分用框选择起来<br />
&gt; 点击 G 表示通用头像 - 下面有更多解释<br />
&gt; 成功 在下面留言可以测试下</p>
<p><span id="more-334"></span><br />
附录：<br />
A G rated gravatar is suitable for display on all websites with any audience type.<br />
&gt; 普通级别，不包含成人元素,任何年龄的访客都适合查看。<br />
PG rated gravatars may contain rude gestures, provocatively dressed individuals, the lesser swear words, or mild violence.<br />
&gt; 有一定争议性的头像，只适合13岁以上查看。<br />
R rated gravatars may contain such things as harsh profanity, intense violence, nudity, or hard drug use.<br />
&gt; 成人级，只适合17岁以上成年人查看。<br />
X rated gravatars may contain hardcore sexual imagery or extremely disturbing violence.<br />
&gt; 最高等级，不适合大多数人查看。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rainmoe.com/2009/10/06/how-to-create-a-gravatar/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached (Feed is rejected)
Page Caching using memcached
Database Caching 1/27 queries in 0.019 seconds using memcached
Object Caching 379/433 objects using memcached

Served from: www.rainmoe.com @ 2012-02-09 17:12:57 -->
