php rss 解析,使用PHP解析读取网站RSS(Feed)内容

format,png

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);

先看一下效果

ec207f68c1ea4a00a0aab7ce825ff582.pngPHP解析RSS的内容

最后这里的无法打开该站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 .= "" . $title . "
";

$is_item = 0;

}

//仅读取item标签中的内容

if ($is_item == 1) {

if ($tag == "title") {$title = $value;}

if ($tag == "link") {$link = $value;}

}

}

//输出结果

echo $rss_str . '
';

}

记得加上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');

用途是什么就自己考虑吧,比如什么美化友链啊啥的~~~

任何个人或团体,未经允许禁止转载本文:《使用PHP解析读取网站RSS(Feed)内容》,谢谢合作!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值