仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1602|回复: 18
打印 上一主题 下一主题

[学习教程] PHP教程之读取站点更新记载(RSS2.0) - php篇 :新...

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-4 00:13:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算是1个熟悉的过程,所以c语言的基础有就更好,没有也不怕。rss|新浪|雅虎|站点   [媒介]
在团体建站的过程当中,常常要从其他网站获得大批静态信息。
本文所描写的就是利用php法式读取rss尺度的xml格局文件,静态显示别人站点的信息列表。

[演示]



Yahoo News : perl php  Perl/PHP XML::RSS读Yahoo旧事(英文)的例子  
My CSDN Blog : perl php  Perl/PHP XML::RSS读取团体CSDN博客的例子  
JLinux : perl php  Perl/PHP XML::RSS读取JLinux的例子  
新浪旧事  综合 perl php 体育 perl php 文娱 perl php  


[条件]
关于php编程喜好者来讲,后期的筹办绝对复杂,只需有php4以上的情况就能够创立此功效。

[对应的XML/RSS文件的格局]
根基上良多网站供应的用来做rss阅读的文件都是以下的格局,这是合适xml的w3c通用尺度的。
复杂的剖析一下,
根基的树布局是,
一个rss根下,有一个channel节点,
  该channel节点下的title,link,description属性是经常使用的,
     然后就是item节点,浩瀚item节点是比来跟新的若干篇文章,
    该item节点下的title,link,pubDate,description属性是经常使用的。
   复杂格局以下:

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
<title>本站点频道的题目</title>
<link>链接地址</link>
<description>站点频道描写信息</description>
<item>
<title>文章1</title>
<link>文章1链接地址</link>
<description>文章1内容简介</description>
</item>
<item>
<title>文章2</title>
<link>文章2链接地址</link>
<description>文章2内容简介</description>
</item>
</channel>
</rss>
举例:
- <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
- <channel>
  <title>邢晓宁专栏</title>
  <link>http://blog.csdn.net/thefirstwind/</link>
  <description>代码平生</description>
  <dc:language>af</dc:language>
  <generator>.Text Version 1.0.1.1</generator>
  <image>http://counter.csdn.net/pv.aspx?id=72</image>
- <item>
  <dc:creator>♂猜猜♂(邢晓宁)</dc:creator>
  <title>在 MS Windows 下创立 DocBook 的解gh境</title>
  <link>http://blog.csdn.net/thefirstwind/archive/2006/12/21/1451714.aspx</link>
  <pubDate>Thu, 21 Dec 2006 13:50:00 GMT</pubDate>
  <guid>http://blog.csdn.net/thefirstwind/archive/2006/12/21/1451714.aspx</guid>
  <wfw:comment>http://blog.csdn.net/thefirstwind/comments/1451714.aspx</wfw:comment>
  <comments>http://blog.csdn.net/thefirstwind/archive/2006/12/21/1451714.aspx#Feedback</comments>
  <slash:comments>0</slash:comments>
  <wfw:commentRss>http://blog.csdn.net/thefirstwind/comments/commentRss/1451714.aspx</wfw:commentRss>
  <trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1451714</trackback:ping>
  <description>在 MS Windows 下创立 DocBook 的解gh境<img src ="http://blog.csdn.net/thefirstwind/aggbug/1451714.aspx" width = "1" height = "1" /></description>
  </item>
- <item>
  <dc:creator>邢晓宁</dc:creator>
  <title>法式员进修的反动-若何利用大脑</title>
  <link>http://blog.csdn.net/thefirstwind/archive/2006/12/13/1440965.aspx</link>
  <pubDate>Wed, 13 Dec 2006 09:41:00 GMT</pubDate>
  <guid>http://blog.csdn.net/thefirstwind/archive/2006/12/13/1440965.aspx</guid>
  <wfw:comment>http://blog.csdn.net/thefirstwind/comments/1440965.aspx</wfw:comment>
  <comments>http://blog.csdn.net/thefirstwind/archive/2006/12/13/1440965.aspx#Feedback</comments>
  <slash:comments>27</slash:comments>
  <wfw:commentRss>http://blog.csdn.net/thefirstwind/comments/commentRss/1440965.aspx</wfw:commentRss>
  <trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1440965</trackback:ping>
  <description>良多人弄手艺,还有良多转行弄手艺,弄了一段工夫终究发明,本人不合适作手艺,要我说其实就是用脑体例的成绩。真的学会恰当的用脑体例,编程编起来轻车熟路。<img src ="http://blog.csdn.net/thefirstwind/aggbug/1440965.aspx" width = "1" height = "1" /></description>
  </item>
  </channel>
  </rss>

[中心法式]

<?php
$RSSURL = "http://blog.csdn.net/thefirstwind/Rss.aspx";
$buff = "";
$fp = fopen($RSSURL,"r");
while ( !feof($fp) ) {
    $buff .= fgets($fp,4096);
}
fclose($fp);
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$buff,$values,$idx);
xml_parser_free($parser);
$in_item = 0;
foreach ($values as $value) {
    $tag  = $value["tag"];
    $type = $value["type"];
    $value = $value["value"];
    $tag = strtolower($tag);
    if ($tag == "item" && $type == "open") {
        $in_item = 1;
    } else if ($tag == "item" && $type == "close") {
        echo <<<EOM
$title
$link
$description
EOM;
        $in_item = 0;
    }
    if ($in_item) {
        switch ($tag) {
            case "title":
                $title = $value;
                break;
            case "link":
                $link = $value;
                break;
            case "description":
                $description = $value;
                break;
        }
    }
}
?>


[共同上以上申明,完全的源代码以下]
以下附加了CSS款式。

<?php
#$RSSURL = "http://www3.asahi.com/rss/index.rdf";
#$RSSURL = "http://rss.news.yahoo.com/rss/topstories";
$RSSURL = "http://blog.csdn.net/thefirstwind/Rss.aspx";
#$RSSURL = "http://jlinux.ddo.jp/bbs/rss.php?auth=0";
#$RSSURL = "http://rss.sina.com.cn/news/marquee/ddt.xml";
#$RSSURL = "http://rss.sina.com.cn/news/allnews/sports.xml";
#$RSSURL = "http://rss.sina.com.cn/news/allnews/ent.xml";
$buff = "";
$fp = fopen($RSSURL,"r");
while ( !feof($fp) ) {
    $buff .= fgets($fp,4096);
}
fclose($fp);
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$buff,$values,$idx);
xml_parser_free($parser);
$channel_title = $values[2]["value"];
echo <<<__HTML__
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=UTF-8'>
<title>$channel_title</title>
<link rel='stylesheet' type='text/css' id='css' href='/bbs/forumdata/cache/style_1.css'>
<script type='text/javascript' src='/bbs/include/common.js'></script>
<script type='text/javascript' src='/bbs/include/menu.js'></script>
</head>
<body>
<table border='1'>
<tr><td>
<img src='http://www.pushad.com/XrssFile/2007-1/30/2007130142039121.gif'>  
<!--
<img src='http://www.pushad.com/XrssFile/2007-1/30/2007130142039669.gif'>  
<img src='http://jlinux.ddo.jp/bbs/images/default/logo.gif'>  
<img src='http://www.pushad.com/XrssFile/2007-1/30/2007130142039970.gif'>  
//-->
</td>
<td>
$channel_title
$channel_lastBuildDate<br>
</td>
</td>
__HTML__;
$in_item = 0;
foreach ($values as $value) {
    $tag  = $value["tag"];
    $type = $value["type"];
    $value = $value["value"];
    $tag = strtolower($tag);
    if ($tag == "item" && $type == "open") {
        $in_item = 1;
    } else if ($tag == "item" && $type == "close") {
        echo <<<EOM
<tr>
  <td colspan='2' class='header'width='400'>
    <a href="$link">$title</a>
  </td>
</tr>
<tr>
  <td colspan='2' width='400'align='right'>
    $pubDate
  </td>
</tr>
<tr>
  <td colspan='2' width='400'>
    $description
  </td>
</tr>
<tr>
  <td>
     
  </td>
</tr>
EOM;
        $in_item = 0;
    }
    if ($in_item) {
        switch ($tag) {
            case "title":
                $title = $value;
                break;
            case "link":
                $link = $value;
                break;
            case "pubDate":
                $pubDate = $value;
                break;
            case "description":
                $description = $value;
                break;
        }
    }
}
echo <<< __HTMLEND__
</table>
</body>
</html>
__HTMLEND__;
?>
                        

最近陆续的有人问我学习php的心得,现在整理为下面,希望可以对大家有些帮助。
谁可相欹 该用户已被删除
18#
发表于 2015-6-28 20:58:02 | 只看该作者
实践是检验自己会不会的真理。
admin 该用户已被删除
17#
发表于 2015-6-18 11:59:02 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
蒙在股里 该用户已被删除
16#
发表于 2015-6-18 04:32:32 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
冷月葬花魂 该用户已被删除
15#
发表于 2015-6-8 18:12:36 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
小妖女 该用户已被删除
14#
发表于 2015-5-2 03:20:21 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
海妖 该用户已被删除
13#
发表于 2015-5-1 17:12:02 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
活着的死人 该用户已被删除
12#
发表于 2015-4-25 14:02:01 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
精灵巫婆 该用户已被删除
11#
发表于 2015-4-23 18:38:39 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
10#
发表于 2015-4-23 07:58:51 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
老尸 该用户已被删除
9#
发表于 2015-4-17 09:22:27 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
透明 该用户已被删除
8#
发表于 2015-4-15 03:07:57 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
再见西城 该用户已被删除
7#
发表于 2015-3-22 04:03:39 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
金色的骷髅 该用户已被删除
6#
发表于 2015-3-20 08:32:58 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
深爱那片海 该用户已被删除
5#
发表于 2015-3-20 00:35:25 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
飘飘悠悠 该用户已被删除
地板
发表于 2015-3-12 16:44:24 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
小魔女 该用户已被删除
板凳
发表于 2015-2-18 03:44:43 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-2-17 23:33:46 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
第二个灵魂 该用户已被删除
楼主
发表于 2015-2-9 22:03:45 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-12 16:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表