RSS是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容),发布一个RSS文件后,这个RSS Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用,WordPress也提供基于RSS的服务。
为什么使用 RSS?
RSS 被设计用来展示选定的数据。
如果没有 RSS,用户就不得不每日都来您的网站检查新的内容。对许多用户来说这样太费时了。通过 RSS feed(RSS 通常被称为 News feed 或 RSS feed),用户们可以使用 RSS 聚合器来更快地检查您的网站更新(RSS 聚合器是用来聚集并分类 RSS feed 的网站或软件)。
PHP解析RSS
不想解释什么,有几个Bug待解决,有些网站解析不出来,不知道为什么,可能是xml格式问题。还有一个变量未定义PHP警告的提示我直接选择屏蔽了
//解决PHP显示Warning和Notice等问题
ini_set("display_errors", 0);
error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_WARNING);
先看一下效果
最后这里的无法打开该站Feed,测试打开Boke112导航的站点Feed无法打开,不知什么原因。个人感觉是Boke112导航的RSS内容格式有问题吧。
for ($i = 0; $i < sizeof($rssfeed); $i++) {
//分解开始
$buff = "";
$rss_str = "";
//打开rss地址,并读取,读取失败则中止
$fp = fopen($rssfeed[$i], "r") or die("无法打开该网站Feed");
while (!feof($fp)) {
$buff .= fgets($fp, 4096);
}
//关闭文件打开
fclose($fp);
//建立一个 XML 解析器
$parser = xml_parser_create();
//xml_parser_set_option -- 为指定 XML 解析进行选项设置
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
//xml_parse_into_struct -- 将 XML 数据解析到数组$values中
xml_parse_into_struct($parser, $buff, $values, $idx);
//xml_parser_free -- 释放指定的 XML 解析器
xml_parser_free($parser);
foreach ($values as $val) {
$tag = $val["tag"];
$type = $val["type"];
$value = $val["value"];
//标签统一转为小写
$tag = strtolower($tag);
if ($tag == "item" && $type == "open") {
$is_item = 1;
} else if ($tag == "item" && $type == "close") {
//构造输出字符串
$rss_str .= "<a href='" . $link . "' target=_blank>" . $title . "</a><br />";
$is_item = 0;
}
//仅读取item标签中的内容
if ($is_item == 1) {
if ($tag == "title") {$title = $value;}
if ($tag == "link") {$link = $value;}
}
}
//输出结果
echo $rss_str . '<br/>';
}
记得加上Header头,防止文字编码格式错误,将RSS源地址列表写为数组,单个单独获取也可以。
//RSS源地址列表数组
$rssfeed = array(
"https://qq52o.me/feed/",
"https://foreverblog.cn/feed/",
"https://boke112.com/feed/",
);
//设置编码为UTF-8
Header('content-type:text/html;Charset=utf-8');
用途是什么就自己考虑吧,比如什么美化友链啊啥的~~~
怎么显示摘要呢?
还有,改了网址,刷新怎么没反应。
按照您的要求,我来学习了! 😈
@吖远zzy 我让你给我接受邀请的。。。
有代码的文章我都喜欢看一看!
按你的要求,我来评论了 😎
@仙界 0 0.这样就没意思了~~~
多谢分享
@菊 不客气的~
我曾经一度认为没什么用,没想到可以搞这么高大上
@明月清风 哈哈 还是有点用的
纯技术贴 花精力了 点赞
我的RSS肯定能解析 😆
@西枫里博客 大佬的直接解析全部 😎