> O(∩_∩)O,小邪突然想写一个可以获取某个指定网站的最新的一条 RSS 内容与链接的程序。
> 这个程序自带缓存功能,RSS 地址的缓存时间是 15 天,RSS 内容的缓存时间是 2 小时。

> Xml 函数实在弄得小邪有些头大,一时半会儿没有空去花时间看看文档,所以就正则咯。
> 其实这个程序是当初答应 菠萝 要写的,现在刚刚好小邪的 PHP 有些入门了,就去搞定它咯。
一. 程序使用介绍:
> 使用下面的代码调用即可,因为小邪输出的是 JavaScript 代码,调用很是方便呢,嘻嘻。
> Url 参数直接填域名就好,别加 http 什么的了,也别加斜杠了,小邪把程序精简一点儿。
> 所以直接加了个只允许 “A-Z a-z 0-9 - _ .” 这些字符出现在 Url 里面,应该不会很麻烦。
<script src="do.php?url=wange.im" />
> 然后程序会输出这个样子的一段代码,带链接与标题文字,并且从新窗口打开,呵呵。
document.write("<a target='_blank'
href='http://wange.im/winters-past-present-and-future.html'>
寒假的过去、现在和未来</a>");
二. 源代码:
> 把源代码保存成 Do.php 然后放到任意目录即可,嘎嘎,O(∩_∩)O 祝你玩得愉快喔。
<?php
$rssurl_save_time = '1296000';
$rsscont_save_time = '7200';
//Evlos.org application
if (!is_dir('cache')) { mkdir('cache'); }
function app_js_out($url,$cont) {
return 'document.write("'."<a target='_blank' href='".$url."'>".$cont.'</a>");';
}
function app_html_get($url) {
$curl = curl_init($url);
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1)
Gecko/20061204 Firefox/2.0.0.1";
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt ($curl,CURLOPT_USERAGENT,$useragent);
$ret = curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
function app_get_rssurl($url) {
$data = app_html_get($url);
preg_match('/application\/rss\+xml\" title=\"[^\"]+\" href=\"(.*)\"/',$data,$s);
if (preg_match('/^http.+/',$s[1])) {
return $s[1];
}
else {
return 'http://'.$url.$s[1];
}
}
function app_websiteinfo($url) {
$u = str_replace('.','_',$url);
$file = './cache/rssurl_-_'.$u.'.txt';
if (file_exists($file)||(time()-filemtime($file))<$rssurl_save_time) {
$cont = file_get_contents($file);
return $cont;
}
else {
$rssurl = app_get_rssurl($url);
$handle = fopen($file,'w+');
fwrite($handle,$rssurl);
fclose($handle);
return $rssurl;
}
}
function app_get_rssread($url) {
$data = app_html_get($url);
preg_match_all('/<title>([^<]+)<\/title>/',$data,$s);
$rss['title'] = $s[1][1];
preg_match_all('/<link>([^<]+)<\/link>/',$data,$c);
$rss['link'] = $c[1][1];
return $rss;
}
function app_rss_getnew($url,$host) {
$u = str_replace('.','_',$host);
$file = './cache/rssnew_-_'.$u.'.txt';
if (file_exists($file)||(time()-filemtime($file))<$rsscont_save_time) {
$cont = file_get_contents($file);
$rsso = explode("||",$cont);
$rssc['title'] = $rsso[0];
$rssc['link'] = $rsso[1];
return $rssc;
}
else {
$rssc = app_get_rssread($url);
$handle = fopen($file,'w+');
fwrite($handle,$rssc['title'].'||'.$rssc['link']);
fclose($handle);
return $rssc;
}
}
if (isset($_GET['url'])) {
$url = $_GET['url'];
if (!preg_match('/^[a-zA-z0-9_\.-]+$/',$url)) {
echo app_js_out('','Error');
}
else {
$feedurl = app_websiteinfo($url);
$rssc = app_rss_getnew($feedurl,$url);
echo app_js_out($rssc['link'],$rssc['title']);
}
}
else {
echo app_js_out('','Error');
}
//Evlos.org application
?>
三. 附言:
> 有朋友用过 HTC Hero 吗?有啥感想没有,小邪觉得 5310xm 太杯具鸟,所以打算换一换。

沙发?
@第三眼,
我靠~
又慢了 :exclaim:
@Auston Jary,
:biggrin: 兄弟们,咱三一起做沙发。。
@Auston Jary , 杯具 ~ ╮(╯_╰)╭
@第三眼 , 恩恩,史上最牛B的沙发被你抢去鸟 ╮(╯▽╰)╭
沙发?
@Auston Jary , ╮(╯▽╰)╭,阴井盖上,o(╯□╰)o
我的博客公园
@第三眼 , 恩,你博客公园那叫牛叉,速度很快耶 ~
网名叫菠萝的人真多
@bolo , 汗,是喔,很杯具,以后小邪会说清楚是哪个 ~
没有玩过HTC Hero,我只玩过 HTC HD,HTC 钻石,HTC TOUCH VIVA,当然还有我的 CHT9000,看那个摇杆很不错~~~
@真好网,
之前考虑过钻石,后来又看上钻石2,喜欢他的双键盘,哥们说钻石、钻石2续航查,SO,转移Hero。。
@ShuaiGe.Me , 嘻嘻,到时候和你交流下 Hero 心得 ~
@真好网 , = =,好多喔,手机大玩家,哈哈 ~
感觉用正则处理不是最适合的方法。。不过简单。。
@fatkun , 恩,不是最适合的,小邪看着长长的XML文档,觉得怕怕的 ~
学习学习。对PHP不是很懂。还是要多学习一下。
@泡面 , 呵呵,大家互相学习,刚刚在你那儿看CUDA ~
想要Hero?太贵了,不过体验很好,回头率很高。
@Hailo,
Hero是Android平台里最帅最靓的一款,尤其是小白。。
不过由于蓝牙问题,却差生了一个囧笑的问题,拿着山寨机的人和Hero蓝牙传东西,他们笑这是什么破手机,连蓝牙都不能用,HTC没听说过。。
@ShuaiGe.Me , 小白不会很容易脏的吧?小邪一直犹豫不决 ~
囧,蓝牙耳机可以用就好,嘻嘻 ~
@Hailo , Hero 一直在降价呢,现在 Hd2 和 Nexus 倒是很贵的说 ~
那手机很漂亮哦。
@孙大圣 , 恩,嘿嘿嘿 ~ 一眼就喜欢了 ~
这个程序倒是挺不错的啦, 悄悄 问一声 可以生成多条RSS 吗?
@hsforever , 恩,没呢,直接读了第一条,到时候你有什么需要的话,小邪可以稍稍改一下的 ~
@邪 罗刹,
我的想法也蛮简单的,比如随便截取某一个主流的网站的更新源10条,
最好能够显示图片的那种 : ),谢谢小邪
@hsforever , 恩,小邪周末应该有空,到时候写写看咯 ~
那不是可以做出RSS聚集的页面,比如 http://www.wpg.im/rssa/
@林木木 , 呵呵,可以的 ~
现在只是直接读了每个博客的第一条文章而已 ~
而且如果是整合性程序,就是一次显示一大堆博客的那种 ~
还是重新写一下比较好,呵呵,这样效率不是很高 ~
@邪 罗刹,
我想的是显示一大堆博客的第一条,然后按时间排列,取前面部分几篇或者几十篇缓,再隔时更新。
这样会不会对服务器的压力很大?代码好些吗?
行的话能不能帮WPG做一个呢?
@林木木 , 囧,小邪的审核列表有一百来行,等下查查哪里出错了,竟然老是要审核你的评论 ~
------------------
呵呵,可以的,如果要小邪做的话,大概得稍稍推迟一点点了 ~
因为小邪明天要去上海做签证,然后后面几天还要去杭州中介公司做培训 ~
接着2月初要到荷兰上大学了,要等安定下来 ~
不过运气好的话,小邪下星期周末还是有时间写的呢 ~
------------------
程序不是很难,服务器压力还好,小邪可以弄个队列,而不是一次一大堆RSS一起读取 ~
你的意思是在同一页列出一大堆博客,然后个博客的位置都显示最新的一条 ~
而博客的顺序则按照更新顺序吧?对了,前台小邪就没那么多时间弄了 ~
嘻嘻,反正wpg高手很多 ~
------------------
额,有个小问题,貌似 Joya 对小邪的印象不是很好 ~
有几次到她博客留言和新年祝福,结果全被删除了 ~ 杯具 ~
@邪 罗刹,
先说说程序,首先说明一点,不是每个博客都必须要显示一条,不然用Google的RSS就可以了,如:http://immmmm.com/links 内的RSS订阅展示;
我再描述详细点:获取每个博客RSS内的第一篇文章及发布时间,然后以发布时间为序排列,再而只需输出排序后前部分文章即可。
-----------------------
出国深造,恭喜恭喜!
------------------
Joya姐俺也好久没联系她了……
@林木木 , 哦,等于一个时间轴一样,貌似有点懂鸟 ~ 哈哈 ~
“获取每个博客RSS内的第一篇文章及发布时间,然后以发布时间为序排列,再而只需输出排序后前部分文章即可。”
就是 1. 每个博客只获取第一篇文章的链接、标题和发布时间
2. 按照发布时间排序,而不是每个博客都要显示
3. 取前部分文章
这样,好的,小邪会尽量在下星期周末完成 ~
其他也不管了,嘻嘻,到时候随你怎么弄 O(∩_∩)O ~
底部留个链接给小邪就好,呵呵 ~
@邪 罗刹,
嗯,你有空时折腾就行了,当然能立马做出来那当然好,不过不能耽误你的正事儿!
如果WPG采用了话,绝对会有申明的,代码作者谁,页面美化谁~
@林木木 , 呵呵,那好的,晚安罗 ~ :biggrin:
那你要把每个人的最新日志都显示在回复的后面么?这样看起来比较帅~
@路人假 , 恩恩,到时候小邪弄起来,现在没来得及弄 ~
WP有这个发代码的插件,我在Zblog中就没找到。。
@风舞清扬 , 杯具,Zblog在文学和咨询内容方面比较见长,但是要玩代码还是建议用WP ~
代码厉害,图更厉害 :biggrin:
@zwwooooo , 呵呵,图可不简单喔 ~ 嘻嘻嘻 ~ 小邪在努力 ~
听说HTC Hero VERY费电,费电 VERY MUCH!
@Revolution,
差不多的,智能手机的通病就是续航差,合理的去使用,续航不是个问题
@ShuaiGe.Me , 哈雷路亚 ~ 。。。。。。。。
@Revolution , = =,杯具,春哥保佑 ~
这款就是传说中g3,g1-g4中目前性能最好的也是价格最高的,玩过半天,确实不错;其实钱多可以买Nexus One,不过至少俺是穷人
@若谷,
Nexus配置高些,不过自身问题也很多
@ShuaiGe.Me , 恩,最近传出了十大问题,让人怕怕的 ~
@若谷 , ╮(╯▽╰)╭,Nexus 好贵喔 ,小邪只买得起 Hero ~
这个WP有自带的函数可以搞定哦,fetch_rss、wp_rss、get_rss,不过我没有仔细研究过
PS,图片很爽,爽歪歪~
@万戈 , 囧,Wp文档好长好可怕 ~
很爽啊,我也想入手个Android手机,就是太贵了,不行的话,先弄个M8玩玩吧
@阿吴,
今年貌似会有几款便宜的Android,只是时间是个问题
@阿吴 , 恩恩,M9也出来鸟,可以去看看 ~
把我丢脑后了吧,关键时刻还是我好呀,嘿嘿。。
简单说一下,感觉Hero还行吧,用起来挺顺手的,小屁股也很帅,出来一段时间了,配置自然比不上新出的,G4、Nexus,拍照效果也不错,见http://shuaige.me/my-phone-hero.orz
蓝牙问题貌似是所有Android 2.0之前都存在的问题,不过已有蓝牙增强扩展,便不是个新问题,而且还可以直接升级到2.0,很期待。。
@ShuaiGe.Me,
额,那图片无法显示呀
@ShuaiGe.Me , 杯具,蓝牙耳机可以用就好,呵呵 ~
话说,不会吧,图片又看不到?天呐,你的网络好封闭喔 ~
@ShuaiGe.Me , 嘿嘿,到时候买来以后和你交流交流 ~
@邪 罗刹,
额,可能是网卡速度慢,昨晚图片没能加载的问题,今天能显示了
至于小白易脏的问题,很简单,用Hero自带的清洁布+电脑清洁液擦擦就干净了
蓝牙耳机木有试过,因为自己木有,感觉应该可以,最起码升级到2.0,问题迎刃而解
入手后,多加交流。。。
@ShuaiGe.Me , 太专业鸟,电脑清洁液 = =,汗 ~
嘿嘿,小邪今天打算买,下午可能有事要去上海 ~
到时候去看看 ~
@邪 罗刹,
啊哈,一路顺风哟。。
@ShuaiGe.Me , 呵呵,谢谢,Htc G3 老衲来了!
没有用自己的博客做效果呢。。我还想测试下
@江流 , 呵呵,祝你玩得愉快 ~
有个同学在用hero,他说还不错~
你可以试试看,其实htc的机器还是可以的~随着Symbian系统的没落,更多新兴的开源手机系统将有机会占据更大的市场空间~
@exia , 恩,S6一直都很不好用 ~
Htc拥有Linux的扩展性,很有前途,嘻嘻 ~
我进入淫荡的传送门了 O(∩_∩)O哈哈~
@疾风 , 握手,握手 ~ :biggrin:
哇塞,你终于写获取rss了,而且这么经典
叫我怎么不折服呢?太感谢啦
@Rusaer , 呵呵,淡定,现在还没来得及看 XML 文档 ~
http://u.evlos.org/fb
还是用正则式赶鸭子上架呢 ~
:confused: 差不多4500-5000 RMB啊··
小邪那么有米···
我还在用着N 3250··
不过倒是很想买台安致(Android貌似是注册了这个中文名)系统的手机··
@AA牌熊仔饼 , 汗,又不是 Nexus,Hero才2900呢 ~
@邪 罗刹,
呃··我以为你说卖NEXUES ONE呢···
HERO也不便宜啊··哈哈··
@AA牌熊仔饼 , 汗 ~ 呵呵 ~ 小邪倒是很想要 Nexus 来着 ~ O(∩_∩)O
HTC Hero 感觉还是不错呢。样子很酷。
@Nox , 嘿嘿,(¯﹃¯)口水
年后要不就hero。。
要不就再忍忍收入佳能500D。。
又或者直接入手G2 不等了~~
抉择啊。。工作了小半年。。终于能买样心头好。。
@kaka,
你就从了Hero吧。。
@ShuaiGe.Me , 小邪有个 PSP,是作为礼物送给某个人的 ~
但是因为某些原因没能送出,而小邪自己很不喜欢玩 ~
所以包着包装盒放了几个月,完全没有用过的痕迹 ~
如果你有兴趣,等小邪从上海回来之后,咱们可以商量商量,呵呵 ~
@邪 罗刹,
上半年暂时不考虑入手PSP了,而且我看中的是大红版的PSP
@ShuaiGe.Me , ╮(╯▽╰)╭,小邪的是黑的,杯具,嘎嘎嘎 ~
@邪罗刹,
感觉还是小白好看,,。
@ShuaiGe.Me , 囧,你不是刚刚说大红版吗 ~ ?
@kaka , 囧,相机又不能打电话,买HERO算鸟 ~ ╮(╯▽╰)╭
@邪 罗刹,
不过我还真缺个单反,再配齐PSP、外加头戴耳机,MacBook。。
这几年要做的,木钱啊。。
小邪永远都是那么邪,俺就是过来只看图片不看文的那个。
@Firm , 嘿嘿,没事儿,看图也好哇,握手握手 ~
这个也很强悍....小邪...我也要学php 之后盗用你的东西 哈哈哈哈
@漠岚 , 囧,弹你JJ ~
怪不得看到很多人博客的评论栏下面多了选项(是否显示博客文章)哦。
用G2的飘过,很好用,扩展太强大了。
@Skyoy , 呵呵,那是另外个WP插件来着 ~
@Skyoy , 嘎嘎,看G2都好用,那G3小邪买定鸟 ~
@邪 罗刹,
值得购买的,公司一个变态狂,G1 G2 G3都买了,后来听说他爸妈用G1 G2,自己G3.
个人觉得G2最好看啦(其实腰包里不太鼓,只能一直用G2了。)
@Skyoy , 哇,手机狂人 ~
小邪到时候拿自己的G3去诱惑下老爸,哇咔咔 ~
呵呵. 好强大... 期待更强大啊.. :rolleyes:
@柳城 , 恩恩,小邪比较忙,只能挤挤这种了 ╮(╯▽╰)╭ ~
听朋友给hero的评价蛮高的,可以考虑。
@g , 好的,谢谢你的建议 ~
也就是说PHP可以读网页源代码是么?这个挺强的
HTC Hero从未听说过,我手机还是蓝屏时代呢 :exclaim:
@九站 , 呵呵,基本上所有的编程语言的都是可以读取网页的呢 ~
Fucking with RSS!
@Kada , 囧,淡定老兄 ~ :exclaim:
代码看不懂。HTC Hero我用过,轨迹球挺好用。只是它的媒体这一块做的不是很顺手,没有iphone好用。
@karm , 不会吧,Iphone的媒体要好?!小邪去研究研究 ~
@邪 罗刹,
Iphone的媒体我觉得挺棒的,不复杂,但强大 :rolleyes:
@karm , 呵呵,已经入手 G3 了,因为小邪比较喜欢 Linux 来着 ~
我闹死心了,虽然放假了但是不得不做的作业还是把我挤的没时间,等我有大块时间的时候我一定天天缠着你学PHP!你跑不了了。 :rolleyes:
@九站 , 哈雷路亚,春哥保佑,阿门 ~ ╮(╯▽╰)╭
:biggrin: 最后的手机是亮点
@popo , 嘿嘿,小邪已经拿到手了 O(∩_∩)O ~
@邪 罗刹,
真是让人羡慕不已,有钱人。 :confused:
@猴子 , 汗,月光族还差不多,贷款一大堆喔 ~
为什么我使用你的代码实验的时候总是出错呢?奇了怪了。
@一米 , ╮(╯▽╰)╭,杯具鸟 ~ 可能是你的PHP环境某些函数被禁止鸟 ~
其他的插不上话,但HTC Hero 很牛X! :rolleyes:
@猴子 , O(∩_∩)O哈,小邪拿到手咯,很不错呐 ~
类似的文章我好像也发过!
@lty , 真的假的?发个链接出来看看哇。
@邪 罗刹 , 真是的,无语,最近这种傻X真多 ~
这个和菠萝那个评论显示rss插件原理一样吗?不错!
@羽中 , 唔??!!Bolo做过这个插件?小邪怎么不知道,嘻嘻,去弄来玩玩 ~
小邪!太棒了!
你写的代码太棒了!!!正好有用!也省得你再去写代码了。
还有,你这个如果改成调用5条,该如何改?
@菠萝 , 今天小邪有点儿空,迟一点儿就给你改好 ~
@邪 罗刹,
OK!
好像是群里的泡面前段时间到手一款HTC,看着很爽的样子。
@菠萝 , 嘿嘿嘿嘿,的确很爽 ~
一条足矣,借你的源码我去弄个emlog的插件玩玩
@小松 , 呵呵,弄好了要叫小邪去围观_( ̄0 ̄)_[哦~]