* 标签为 'PHP' 的日志

写了一个显示友情链接RSS的WP插件

前几天发现一个WP插件:WordPress Plugin Live Blogroll,能在鼠标悬停博客友情链接上方时显示一个浮动层,来展示好友的最新文章。这么好玩的插件,怎能放过?我马上下载安装,发现还是有问题:一是样子不够帅;再者部分国内的RSS不能正常读取。于是我就产生了自己动手写一个类似插件的念头。

第一步要从链接地址中自动获取RSS地址,幸好现在大多数的博客都遵循一个统一的标准来标识RSS入口。如:

<link rel="alternate" type="application/rss+xml" title="JerryQu的小站 RSS Feed" href="http://feed.qgy18.com" />

只需要查找type=”application/rss+xml”的link标记的href属性就可以了。在php中用preg_match_all方法很容易就可以匹配出来。

然后,就可以用file_get_contents取到xml,之后用simplexml对象来解析。值得注意的是,一定要把取回的xml缓存起来,就现在的网络情况来看,实时取是不太现实的。我是把xml直接生成文件来缓存的,根据文件的最后修改时间判断是否过期。前端用JS来异步获取数据,生成浮动层,浮动层的外观是仿照MSN联系人Tip布局的,加了一个小箭头来指示当前显示的是哪条链接。

具体效果可以在本页面右侧链接处查看。现在只是实现了功能,插件的配置页还没有完成。

下载地址:http://www.qgy18.com/g/?id=2 (累计下载:次)

QGYWEBIM有PHP+MYSQL版本了

这两天,手头活儿少了一点,我就抽空把QGYWEBIM移植到了PHP+MYSQL平台下,功能和之前发布的β1.4基本一致。因为是后端生成xml来传输数据,所以尽管我对php了解不多,但还是移植得很顺利。

比较郁闷的是,以前我是做windows平台开发的,众所周知windows是忽略文件大小写的,所以我的命名习惯是文件名单词首字母大写,html链接里文件名统统用小写。但是由于php多数是跑在linux下的,这样写有很大的问题。

我遇到的另外一个问题是:AJAX提交时,发送的内容用escape编码,php端不会自动解码,网上找了一个php的unescape函数在linux下有问题。后来我才发现在js端改用encodeURIComponent来编码,php端不用解码就是正常的。不过胡子说他已经让escape在linux也能工作了。

PHP+MySQL版测试地址:http://www.qgy18.com/lab/webim/

ASP+Access版测试地址:http://old.qgy18.com/webim

说明文档:http://old.qgy18.com/webim/readme.html

先放上去测试一段时间,我在会修复BUG后发布完整源代码的。