捣鼓了一下,把www.7lau.com这站放到VPS上,然后修改了一些内容,中间的黄色区域用来调用我的博客,但是我的博客又不在同一服务器上,于是我就google之。被我找到通过调用RSS来实现数据的调用方法:
封装的RSS类,文件名设定为 rss.php,代码如下:
url=$url;
}
function ReadFile(){
$fp = fopen($this->url,"r");
while ( !feof($fp) ) {
$this->content .= fgets($fp,4096);
}
fclose($fp);
}
function ReadXML(){
$parser = xml_parser_create();//建立xml解析器
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);//忽略由空白字符组成的值
xml_parser_set_option($parser,XML_OPTION_TARGET_ENCODING,'UTF-8');
//设置编码,目前只支持ISO-8859-1、US-ASCII 和 UTF-8,也可以不设置,与目标编码一致
xml_parse_into_struct($parser,$this->content,$this->values);
xml_parser_free($parser);
}
function RSS($n=10){
$this->ReadFile();
$this->ReadXML();
$in_item = 0;
$i=0;
$read=array();
foreach ($this->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"){
$read[$i]['link']=$link;
$read[$i]['title']=$title;
if ($pubDate) {
$read[$i]['pubDate']=$pubDate;
}
$read[$i]['description']=$description;
$in_item = 0;
$i++;
if ($i>=$n) {
break;
}
}
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;
}
}
}
return $read;
}
}
?>
模板代码如下:
圣郡网络-天津网站制作-天津网页设计-天津网站设计
RSS(10);
# 10 可以改成别的数字,比如5,这是读取feed的条数
foreach ($values as $value) {
echo "";
}
?>
这个方法感觉还不错,基本上支持RSS的都可以使用。如果你还需要调用的更多内容,可以参考原文里的其他代码。
版权声明: 本文采用 BY-NC-SA 协议进行授权,如无注明均为原创,转载请注明转自 皇家元林
本文链接: PHP调用任何网站RSS数据
本文链接: PHP调用任何网站RSS数据
这段代码很有用
14年前 · 梅州 · Unknown Unknown
@zwwooooo 嘿嘿,是的,但是看不懂,唉。。
14年前 · 合肥 · Unknown Unknown
嘿嘿,可以搞一个新闻聚合之类的
14年前 · 重庆 · Unknown Unknown
问句题外话,元林现在用的是哪家的主机,贵不贵,什么配置?
14年前 · 太原 · Unknown Unknown
@Neo 现在用的是肖恩的,不过问题很多,价格也贵,最近我买了一个VPS,准备搬过去
14年前 · 合肥 · Unknown Unknown