<?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; 后台技术</title>
	<atom:link href="http://www.qgy18.com/category/dev/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/10/download_qgywebim_phpmysql/</link>
		<comments>http://www.qgy18.com/2008/10/download_qgywebim_phpmysql/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 17:16:00 +0000</pubDate>
		<dc:creator>Jerry Qu</dc:creator>
				<category><![CDATA[后台技术]]></category>
		<category><![CDATA[QGYWebIM]]></category>

		<guid isPermaLink="false">http://www.qgy18.com/?p=61</guid>
		<description><![CDATA[写完PHP版的QGYWEBIM也有一个多月了。这期间没测试出什么大毛病，加上最近不少人问我要PHP版的代码，就整理了一下提供下载了。相比之前的ASP版本，有几处小变动，在这里简单说明下： 1.支持了匿名用户。其实这个小功能是当初为了方便那些想要帮忙测试而又不想注册帐号的同学加上的。没有好好的设计，没太多实用性，就没有提供一个管理匿名用户的入口。如果你确实想... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.qgy18.com/2008/08/qgywebim_php_edition/">写完PHP版的QGYWEBIM</a>也有一个多月了。这期间没测试出什么大毛病，加上最近不少人问我要PHP版的代码，就整理了一下提供下载了。相比之前的ASP版本，有几处小变动，在这里简单说明下：</p>
<p>1.支持了匿名用户。其实这个小功能是当初为了方便那些想要帮忙测试而又不想注册帐号的同学加上的。没有好好的设计，没太多实用性，就没有提供一个管理匿名用户的入口。如果你确实想提供匿名用户登录功能的话，可以<a href="http://bbs.51js.com/viewthread.php?tid=77474&#038;page=2&#038;fromuid=50656#pid563891">参考这个帖子</a>。</p>
<p>2.改进了查找好友的方式。之前很多人跟我反映查找好友太不方便了，确实只能通过email地址来添加好友很不友好，尽管MSN一直如此。现在好了，我在这个版本中把查找好友的功能稍微改进了下，除了可以精确查找，还可以像QQ一样根据一些条件模糊匹配。ASP版的我也改了，只需要替换两个文件就可以了。</p>
<p>3.合并了一些图片。众所周知，将一些小图片合成一张大图可以显著的减少连接数，提高效率，这也就是人们常说的css sprites技术。但是为什么之前的版本中那么多的小图没有合并呢？那是因为我太懒了，合成一张大图片还要算像素太麻烦，哈哈。不过呢，我最近发现了一个<a href="http://www.csssprites.com/">很好的在线工具</a>，它可以自动帮你把小图合并，并帮你算好像素，于是我就象征性的把其中一些小图片合并了一下，免得被人鄙视。。。</p>
<p><img src="http://www.qgy18.com/wp-content/2008-03-12_123145png.jpg" alt="" /></p>
<p>下载地址[已修复]：<a href="http://www.qgy18.com/g/?id=1">http://www.qgy18.com/g/?id=1</a>  (累计下载:<script src="http://www.qgy18.com/g/js.php?id=1"></script>次)</p>
<p>一些相关链接：</p>
<p>QGYWEBIM运行截图：<a href="http://www.qgy18.com/ablum/?d=5176709877654128385">http://www.qgy18.com/ablum/?d=5176709877654128385</a></p>
<p>PHP+MySQL版测试地址：<a href="http://www.qgy18.com/lab/webim/">http://www.qgy18.com/lab/webim/</a></p>
<p>ASP+Access版测试地址：<a href="http://old.qgy18.com/webim/">http://old.qgy18.com/webim/</a></p>
<p>说明文档：<a href="http://old.qgy18.com/webim/readme.html">http://old.qgy18.com/webim/readme.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qgy18.com/2008/10/download_qgywebim_phpmysql/feed/</wfw:commentRss>
		<slash:comments>14</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>
		<item>
		<title>QGYWebIM新功能-支持匿名用户</title>
		<link>http://www.qgy18.com/2008/06/qgywebim-1-4/</link>
		<comments>http://www.qgy18.com/2008/06/qgywebim-1-4/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 10:27:59 +0000</pubDate>
		<dc:creator>Jerry Qu</dc:creator>
				<category><![CDATA[后台技术]]></category>
		<category><![CDATA[QGYWebIM]]></category>

		<guid isPermaLink="false">http://www.qgy18.com/?p=16</guid>
		<description><![CDATA[好久都没改过QGYWebIM程序了，今天加上了一个反映得比较多的功能：匿名用户登录。简单说来，就是系统允许用户不注册，通过点击匿名用户链接由系统分配一个临时帐号来进入聊天程序。这个功能一方面可以方便那些想体验本聊天系统又嫌注册麻烦的用户，另一方面此功能稍加改进可以应用在网上客服系统中。当然，临时帐号的权限很低，很多操作都被限制了，另外系统允... ]]></description>
			<content:encoded><![CDATA[<p>好久都没改过QGYWebIM程序了，今天加上了一个反映得比较多的功能：匿名用户登录。简单说来，就是系统允许用户不注册，通过点击匿名用户链接由系统分配一个临时帐号来进入聊天程序。这个功能一方面可以方便那些想体验本聊天系统又嫌注册麻烦的用户，另一方面此功能稍加改进可以应用在网上客服系统中。当然，临时帐号的权限很低，很多操作都被限制了，另外系统允许同时使用的临时帐号也有限制。</p>
<p>测试地址还是在<a href="http://www.shufou.com/chat/">http://www.shufou.com/chat/</a>，系统限制了只允许5个匿名用户同时使用，如果你收到了登录失败提示，就说明人数已经达到上限，你可以稍后再试，当然注册用户不受此限制。当前版本为beta1.4，我会等测试一段时间后放出升级包，暂时不提供此版本的下载。<span id="more-16"></span></p>
<p>PS：今天用<a title="转到Google搜索结果" href="http://www.google.cn/search?client=aff-cs-worldbrowser&amp;forid=1&amp;ie=utf-8&amp;oe=UTF-8&amp;hl=zh-CN&amp;q=qgywebim" target="_blank">Google搜索了一下QGYWebim</a>，发现网上不少网站转载了我的这个作品，很感谢大家看得起我，但是有一点希望大家注意下：转载时作者主页请链到本BLOG，测试地址请链到<a href="http://www.shufou.com/chat/">http://www.shufou.com/chat/</a>。这样我才能比较好的收到bug反馈以及新功能需求，为下个版本的发布做好准备。</p>
<p><span style="color: #ff6600;">再PS：</span>今天仔细研究了一下<a href="http://www.qgy18.com/2008/06/qgywebim-1-4/#comment-11">ShowPHP反映的添加好友BUG</a>，证实在添加好友那个文本框里输入一个不存在的email再敲回车键确实会出错，这个问题以前修正过，但是后来不知道是哪次版本更新又把老版本给传上去了。按下面方法即可解决：</p>
<blockquote><p>找到page目录下的AddFriend.asp文件，在添加好友那个表单任意位置加上：<br />
&lt;input name=&#8221;tbHid&#8221; type=&#8221;text&#8221; id=&#8221;tbHid&#8221; style=&#8221;display:none&#8221;/&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.qgy18.com/2008/06/qgywebim-1-4/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
