用PHP读取RSS feed的代码_php实例

而助易网的rss读取就是在这个程序的基础上稍做改造而成,主
要是输出了一个数组字符串以及解决编码问题。

php源代码及代码详细解释如下:

<?php
//RSS源地址列表数组
$rssfeed = array("http://www.jb51.net/feed",
"http://rss.sina.com.cn/news/allnews/sports.xml",
"http://ent.163.com/special/00031K7Q/rss_toutiao.xml",
"http://tech.163.com/special/00091JPQ/techimportant.xml");

//设置编码为UTF-8
header('Content-Type:text/html;charset= UTF-8');     

for($i=0;$i<sizeof($rssfeed);$i++){//分解开始
    $buff = "";
    $rss_str="";
    //打开rss地址,并读取,读取失败则中止
    $fp = fopen($rssfeed[$i],"r") or die("can not open $rssfeed"); 
    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 />";
}
?>

时间: 2024-12-24 09:07:36

用PHP读取RSS feed的代码_php实例的相关文章

PHP读取RSS feed源的代码(带注释,可读取多个源)

因为网站需要读取不同来源的rss feed,写了一个php程序来循环读取rss feed,为了方便阅读及了解程序实现过程,加上了注释,和大家共同学习.而助易网的rss读取就是在这个程序的基础上稍做改造而成,主要是输出了一个数组字符串以及解决编码问题. php源代码及代码详细解释如下: <?php  //RSS源地址列表数组  $rssfeed = array("http://www.jzxue.com/rss/12.xml",  "http://rss.sina.com

可以应用到马克斯电影站生成Rss Feed的代码_应用技巧

使用方法:将下面的代码存为rss.asp(记得以UTF-8格式保存)并上传到网站根目录,剩下的工作就是找Rss提交入口去提交你的Feed地址http://你的域名/rss.asp 演示:http://www.366mv.cn  代码如下,请根据注释修改相应的信息,版权信息还望各位能够保留 ^_^  复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>  <%  Session.CodePage=6

php ajax异步读取rss文档数据_php技巧

RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的XML应用.RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者. 本文实例为大家分享了php ajax异步读取rss文档数据的相关代码,供大家参考,具体内容如下 代码如下: index.html <html> <head> <script> function showRSS(str) { if (str.length==0) { documen

利用Fix Rss Feeds插件修复WordPress的Feed显示错误_php实例

今天突然有个网友留言说博客的Feed挂了,症状如下: Chrome直接打开订阅页面显示如下: This page contains the following errors: error on line 1 at column 1: Document is empty Below is a rendering of the page up to the first error. FeedDemon提示:此Feed包含错误. 添加后也没什么影响,能正常使用. 鲜果阅读器也可阅读,但是没有获取到最新

可以应用到马克斯电影站生成Rss Feed的代码

使用方法:将下面的代码存为rss.asp(记得以UTF-8格式保存)并上传到网站根目录,剩下的工作就是找Rss提交入口去提交你的Feed地址http://你的域名/rss.asp  演示:http://www.366mv.cn  代码如下,请根据注释修改相应的信息,版权信息还望各位能够保留 ^_^ 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>  <%  Session.CodePage=6

PHP读取RSS(Feed)简单实例_php实例

最近在弄博客,但各种博客间同步比较麻烦,好在每一个博客都有自己的RSS聚合系统,可以通过RSS实现博客同步调用,于是自己动手用RSS实现博客同步发布,在其中就研究一下PHP读RSS. RSS是用XML来书写的,XML 是一种数据存储格式.PHP读取XML数据有三种方法:用XML解析函数.DOM模块和正则表达式,最直接地就是直接解析XML,获取XML中的数据. 以下是解析代码: 复制代码 代码如下: <?phperror_reporting(E_ALL^E_NOTICE); $rssfeed =

利用PHP和AJAX创建RSS聚合器的代码_php实例

想象使用一个简单HTML文件来把一个请求发送到一个服务器端脚本,收到一个基于该请求的定制XML文件,然后把它显示给用户而几乎不需要刷新浏览器!本文作者将同你一起探讨怎样在普通Web应用程序中联合PHP和AJAX技术来创建实时的数据传输而不需要进行浏览器刷新. 尽管本文所使用的是PHP语言,但是请记住任何服务器端语言都会正常工作.为了理解本文,我假定你基本理解JavaScript和PHP或一类似服务器端语言. 本文示例使用AJAX来把一请求从一个RSS馈送发送到一定制的PHP对象.该PHP对象复制

php excel reader读取excel内容存入数据库实现代码_php实例

上一篇文章介绍了php-excel-reader读取excel文件的方法,因为需要,将excel这样的数据: 新建数据库表如下: -- 数据库: `alumni` -- 表的结构 `alumni` CREATE TABLE IF NOT EXISTS `alumni` (   `id` bigint(20) NOT NULL AUTO_INCREMENT,   `gid` varchar(20) DEFAULT NULL COMMENT '档案编号',   `student_no` varcha

用PHP读取超大文件的实例代码_php实例

去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一下这些帐号信息.虽然这些数据信息都已经被"整理"过的,不过自己拿来学习也挺有用的,毕竟有这么大的数据量. 数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机.用MSSQL的客户端也打不开这么大的SQL文件,直接报内存不足,原因据说是MSSQL在读取数据的时候,是一次性地将读取到的数据放在内存中,如果数据量过大,而内存不足,则会直接导致系统瘫掉.