首先是提取标签所描述的内容.典型的RSS文档会是如下的结构:
以下是引用片段:
rss /rss
xml 代码
RSS?
channel?
item?
/item?
/channel?
/RSS
像items这样不包含"/"的标签是起始标签,而包含"/"的"/items"则是结束标签,所以提取内容的函数应该匹配查找"item/item"的内容从而获取具体的内容.
现在有很多的rss订阅,我们直接可以订阅到邮箱.既然学了PHP,那么有没有一种方法可以直接将rss的新闻信息显示在自己的网页上呢?有的,必须的,下面就是这个rss脚本:
php
//RSS源地址列表数组
$rssfeed?=?array("");
for($i=0;$isizeof($rssfeed);$i◆◆){//分解开始
$buff?=?"";
$rss_str="";
//打开rss地址,并读取,读取失败则中止
$fp?=?@fopen($rssfeed[$i],"r")?or?die("can?not?open?$rssfeed");?
while?(?!feof($fp)?)?{
}
//关闭文件打开?
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);
$num=1;
$val=@$values[$num];
$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?.="?lia?href="".$link.""?mce_href="".$link.""?target=_blank".$title."/a/li";
$is_item?=?0;
//仅读取item标签中的内容
if(@$is_item==1){
if?($tag?==?"title")?{$title?=?$value;}??
if?($tag?==?"link")?{$link?=?$value;}
//输出结果?
foreach?(explode("/n",str_replace("/r",'',$rss_str))?as?$line)?
{
显示rss新闻条数,设为10的整数倍,将网页上传到自己的php空间就行了,或者没有空间的直接自己的电脑装个wamp服务器,将订阅页设为浏览器主
页,这样每次打开浏览器就能看自己的订阅了.
直接访问RSS的链接就得到RSS的xml内容,你可以解析RSS文件获得你需要的内容.
你可以用php的函数比如,fopen或者file_get_contents得到xml字符串,声明一个xml的对象,比如:
$rssUrl="";
$xmlStr=file_get_contents($rssUrl);
$xmlobj=simplexml_load_string($xmlStr);
......
echo $xmlobj-Title;
具体你再参考一下simplexml的用法
Leaf leaf = new Leaf("Leaf D");
root.Add(leaf);
root.Remove(leaf);
root.Display(1);
Console.Read();
RSS有它固字的格式.
你看这个网页右侧那个红色图标RSS,打开它,照葫芦画瓢即可.
新手如何使用PHP创建RSS阅读器
以上就是土嘎嘎小编为大家整理的包含用php实现动态生成rss文件的词条相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!