做这个插件的起初想法是想把自己的好友RSS全部导入到抓虾里面去。我记得刚注册抓虾的时候,把博客地址填进去,它就自动抓取所有好友的RSS,挺方便的。后来不小心被我删除了,再怎么弄也弄不回去了,于是我就萌发了做一个提取所有好友的RSS地址的插件的想法,接下来就开始做了。
这个插件分为几个部分:
1.从数据库中提取所有链接的URL。这个就用一条SQL语句,从 wp_links 表中提取这些数据就好了。
2.根据好友URL去下载他的首页。这个说起来本是一件很简单的事,PHP里面有 file_get_contents() 这个函数,可以自动把远程文件的数据存入一个变量中。这个函数需要服务器开启 allow_url_fopen 这个选项。自己的测试环境一般都是开启的,但偏偏国内很多人用的Dreamhost空间默认关闭这个函数,只好改用 fsockopen() 这个函数来实现,当然,这个函数功能比file_get_contents()强大多了,fsockopen() 可以自己构造Header这些,就仿佛是一个真正的访客在浏览一样,而file_get_contents()就比较简单了。关于fsockopen()我用了IT柏拉图写的 fsockopen HTTP下载类,比自己写一大段代码简单多了,当然,代码功能虽然强大,但东西也就多了,里面也有很多我根本用不到的东西,主要的文件17KB估计有10KB都是这个类的。估计下一次更新时写个更简单的fsockopen 类,够用就好。
3.从文本中提取RSS地址。这一步的关键在于能否写出一个好的正则匹配函数,我自己自然是写不好,搞了半天也搞不定,后来上网找了一个,分析一下,基本上都OK了。
有了这些还要组装起来,那可就真麻烦了,如果有100个友情链接,如何一次性提取100个网页?刚开始的时候,我还真以为一个循环就好了,但看着程序已经运行了一个小时超时后,才算出6个RSS地址,我否决了这个方案,一次不能提取太多,干脆一次就提取一个,提取成功后放到数据库里,向浏览器输出页面,浏览器再自动转跳下一个操作中。这样做就避免了服务器超时的麻烦,当然,这样做实际上是一直在看同一个页面,看起来很单调,下一版估计采用AJAX方式。在全部RSS地址提取完成后,在根目录生成一个opml.xml文件就算完成了
自己占沙发
我试试ie下你这里的garavar
我感觉这个皮肤不错。我在用FF,你呢?
头像正常,那ff3下,这个头像就不显示了…和你说声…
不会把。。我就在用FF3呀