日期:2014-05-17 浏览次数:20463 次
<?php
header("Content-type: text/html; charset=utf-8");
ini_set("max_excution_time" ,3600);
$url = "http://sz.focus.cn/common/xml/rss/news/hot.php";
$newItemArr = parseItems( $url );
$xmlItemContent = makeRssItemString( $newItemArr ); //重新生成item 内容,将下载内容替换descript.
//rss xml 的头尾字符串
$xmlPre = '
<?xml version="1.0" encoding="GBK"?>
<?xml-stylesheet type="text/xsl" href="/common/xml/xsl/rss.xsl" media="all"?>
<?xml-stylesheet type="text/css" href="/common/xml/css/rss.css" media="all"?>
<rss version="2.0"
xmlns:focus="http://house.focus.cn"
xmlns:F="http://house.focus.cn"
docType="rss"
F:docType="rss"
>
<channel
pageIndex=""
pageSize="20"
recordCount=""
F:pageIndex=""
F:pageSize="20"
F:recordCount="">
<image>
<title><![CDATA[热点新闻-搜狐焦点网深圳站 ]]></title>
<link>http://sz.focus.cn/newscenter/xwsy.html</link>
<url>http://images.house.focus.cn/img/newhouselogo.gif</url>
</image>
<title>热点新闻-搜狐焦点网深圳站</title>
<link>http://sz.focus.cn/newscenter/xwsy.html</link>
<description><![CDATA[提供最全面最及时的中国房地产新闻资讯 ]]></description>
<copyright>Copyright 2012, sohu.com Inc., all rights reserved</copyright>
<language>zh-cn</language>
<lastBuildDate>Mon, 02 Jul 2012 21:44:21 +0800</lastBuildDate>
<pubDate>Mon, 02 Jul 2012 21:44:21 +0800</pubDate>
<category>地产综合</category>
<ttl>30</ttl>';
$xmlAppend = '</channel></rss>';
$xmlOutput = $xmlPre . $xmlItemContent . $xmlAppend ;
echo $xmlOutput;
/**
* @param $url
* @return array itemObj
*/
function parseItems( $url )
{
$xmlObj = simplexml_load_file( $url );
$items = $xmlObj -> channel -> item;
$resultArr = array();
foreach( $items as $item ):
$resultArr []= makeRssItemObj( $item );
endforeach;
return $resultArr;
}
/**
* @param $item
* @return itemObj
*/
function makeRssItemObj( $item )
{
// $item->link = "demo.html";
$urlContent = fileGetContent( $item->link ); //如果不支持curl 就用file_get_content 或者socket 连接来实现.
$urlContent = @iconv("gb2312","utf-8",$urlContent);
// $content = iconv("gb2312" , "utf-8" , $content);
preg_match("/id=\"newscontent\">([\d\D]+)<div\s+class=\"clear\">/iU