<?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>JerryQu的小站 &#187; PHP</title>
	<atom:link href="http://www.qgy18.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.qgy18.com</link>
	<description></description>
	<lastBuildDate>Tue, 16 Mar 2010 03:42:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>写了一个显示友情链接RSS的WP插件</title>
		<link>http://www.qgy18.com/2008/10/wp-plugin-blogroll/</link>
		<comments>http://www.qgy18.com/2008/10/wp-plugin-blogroll/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 16:53:44 +0000</pubDate>
		<dc:creator>Jerry Qu</dc:creator>
				<category><![CDATA[后台技术]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WP插件]]></category>

		<guid isPermaLink="false">http://www.qgy18.com/?p=63</guid>
		<description><![CDATA[前几天发现一个WP插件：WordPress Plugin Live Blogroll，能在鼠标悬停博客友情链接上方时显示一个浮动层，来展示好友的最新文章。这么好玩的插件，怎能放过？我马上下载安装，发现还是有问题：一是样子不够帅；再者部分国内的RSS不能正常读取。于是我就产生了自己动手写一个类似插件的念头。 第一步要从链接地址中自动获取RSS地址，幸好现在大多数的博客都遵循一个统一的... ]]></description>
			<content:encoded><![CDATA[<p>前几天发现一个WP插件：<a href="http://plugins.wopus.org/wordpress-plugin-live-blogroll.html">WordPress Plugin Live Blogroll</a>，能在鼠标悬停博客友情链接上方时显示一个浮动层，来展示好友的最新文章。这么好玩的插件，怎能放过？我马上下载安装，发现还是有问题：一是样子不够帅；再者部分国内的RSS不能正常读取。于是我就产生了自己动手写一个类似插件的念头。</p>
<p>第一步要从链接地址中自动获取RSS地址，幸好现在大多数的博客都遵循一个统一的标准来标识RSS入口。如：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">alternate</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">application/rss+xml</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">title</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">JerryQu的小站 RSS Feed</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://feed.qgy18.com</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></div></div>
<p>只需要查找type=&#8221;application/rss+xml&#8221;的link标记的href属性就可以了。在php中用preg_match_all方法很容易就可以匹配出来。</p>
<p>然后，就可以用file_get_contents取到xml，之后用simplexml对象来解析。值得注意的是，一定要把取回的xml缓存起来，就现在的网络情况来看，实时取是不太现实的。我是把xml直接生成文件来缓存的，根据文件的最后修改时间判断是否过期。前端用JS来异步获取数据，生成浮动层，浮动层的外观是仿照MSN联系人Tip布局的，加了一个小箭头来指示当前显示的是哪条链接。</p>
<p>具体效果可以在本页面右侧链接处查看。现在只是实现了功能，插件的配置页还没有完成。</p>
<p>下载地址：<a href="http://www.qgy18.com/g/?id=2">http://www.qgy18.com/g/?id=2</a>  (累计下载:<script src="http://www.qgy18.com/g/js.php?id=2"></script>次)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qgy18.com/2008/10/wp-plugin-blogroll/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>QGYWEBIM有PHP+MYSQL版本了</title>
		<link>http://www.qgy18.com/2008/08/qgywebim_php_edition/</link>
		<comments>http://www.qgy18.com/2008/08/qgywebim_php_edition/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 16:30:17 +0000</pubDate>
		<dc:creator>Jerry Qu</dc:creator>
				<category><![CDATA[后台技术]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[QGYWebIM]]></category>

		<guid isPermaLink="false">http://www.qgy18.com/?p=36</guid>
		<description><![CDATA[这两天，手头活儿少了一点，我就抽空把QGYWEBIM移植到了PHP+MYSQL平台下，功能和之前发布的β1.4基本一致。因为是后端生成xml来传输数据，所以尽管我对php了解不多，但还是移植得很顺利。 比较郁闷的是，以前我是做windows平台开发的，众所周知windows是忽略文件大小写的，所以我的命名习惯是文件名单词首字母大写，html链接里文件名统统用小写。但是由于php多数是跑在linux下的... ]]></description>
			<content:encoded><![CDATA[<p>这两天，手头活儿少了一点，我就抽空把QGYWEBIM移植到了PHP+MYSQL平台下，功能和之前发布的β1.4基本一致。因为是后端生成xml来传输数据，所以尽管我对php了解不多，但还是移植得很顺利。</p>
<p>比较郁闷的是，以前我是做windows平台开发的，众所周知windows是忽略文件大小写的，所以我的命名习惯是文件名单词首字母大写，html链接里文件名统统用小写。但是由于php多数是跑在linux下的，这样写有很大的问题。</p>
<p>我遇到的另外一个问题是：AJAX提交时，发送的内容用escape编码，php端不会自动解码，网上找了一个<a href="http://topic.csdn.net/u/20080103/20/54610212-4926-46a0-905e-14e3bc58d147.html">php的unescape函数</a>在linux下有问题。后来我才发现在js端改用encodeURIComponent来编码，php端不用解码就是正常的。不过<a href="http://www.huzi.name">胡子</a>说他已经让<a href="http://www.huzi.name/2008/08/21/php%E4%B8%AD%E8%A7%A3%E7%A0%81js-escape%E7%BC%96%E7%A0%81%E8%BF%87%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2/">escape在linux也能工作</a>了。</p>
<p>PHP+MySQL版测试地址：<a href="http://www.qgy18.com/lab/webim/">http://www.qgy18.com/lab/webim/</a>，<a href="http://www.qgy18.com/g/?id=1">下载点这里</a></p>
<p>ASP+Access版测试地址：<del>http://old.qgy18.com/webim</del>，<a href="http://www.qgy18.com/g/?id=3">下载点这里</a></p>
<p>说明文档：<a href="http://www.qgy18.com/file/readme.html">http://www.qgy18.com/file/readme.html</a></p>
<p>先放上去测试一段时间，我在会修复BUG后发布完整源代码的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qgy18.com/2008/08/qgywebim_php_edition/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
