首頁  >  文章  >  後端開發  >  [原创]为找房方便 ,将sohu焦点的 rss 改成全文的.解决方案

[原创]为找房方便 ,将sohu焦点的 rss 改成全文的.解决方案

WBOY
WBOY原創
2016-06-13 12:55:29895瀏覽

[原创]为找房方便 ,将sohu焦点的 rss 改成全文的.

本帖最后由 PhpNewnew 于 2012-07-03 07:50:15 编辑 房价貌似快要涨了,俺最近天天加班,俺媳妇来负责找房源,可她那狗屎公司无法上网,只好用ipad 加载rss 离线看,结果狗屎sohu焦点的rss 非全文rss ,为了老婆找房方便,写了点代码,用于生成全文的rss. 希望借此机会,尝试一下代码改善生活的感觉. 不废话吧,直接贴代码了.
<br>
<?php <br />
header("Content-type: text/html; charset=utf-8");<br>
ini_set("max_excution_time"  ,3600);<br>
$url = "http://sz.focus.cn/common/xml/rss/news/hot.php";<br>
<br>
$newItemArr = parseItems( $url );<br>
$xmlItemContent = makeRssItemString( $newItemArr ); //重新生成item 内容,将下载内容替换descript.<br>
<br>
//rss xml 的头尾字符串<br>
$xmlPre = '<br>
<?xml  version="1.0" encoding="GBK"?><br>
<?xml-stylesheet  type="text/xsl" href="/common/xml/xsl/rss.xsl" media="all"?><br>
<?xml-stylesheet  type="text/css" href="/common/xml/css/rss.css" media="all"?><br>
<br>
<rss></rss>
xmlns:focus="http://house.focus.cn"<br>
xmlns:F="http://house.focus.cn"<br>
docType="rss"<br>
F:docType="rss"<br>
><br>
<channel></channel>
pageIndex=""<br>
pageSize="20"<br>
recordCount=""<br>
F:pageIndex=""<br>
F:pageSize="20"<br>
F:recordCount=""><br>
<image><br>
<title></title>
<br>
<link>http://sz.focus.cn/newscenter/xwsy.html<br>
<url>http://images.house.focus.cn/img/newhouselogo.gif</url><br>
</image><br>
<title>热点新闻-搜狐焦点网深圳站</title><br>
<link>http://sz.focus.cn/newscenter/xwsy.html<br>
<description></description><br>
<copyright>Copyright 2012, sohu.com Inc., all rights reserved</copyright><br>
<language>zh-cn</language><br>
<lastbuilddate>Mon, 02 Jul 2012 21:44:21 +0800</lastbuilddate><br>
<pubdate>Mon, 02 Jul 2012 21:44:21 +0800</pubdate><br>
<category>地产综合</category><br>
<ttl>30</ttl>';<br>
$xmlAppend = '';<br>
<br>
<br>
$xmlOutput = $xmlPre . $xmlItemContent . $xmlAppend ;<br>
echo $xmlOutput;<br>
<br>
<br>
/**<br>
 * @param $url<br>
 * @return array itemObj<br>
 */<br>
function parseItems( $url )<br>
{<br>
    $xmlObj = simplexml_load_file( $url );<br>
    $items = $xmlObj -> channel -> item;<br>
<br>
    $resultArr = array();<br>
<br>
    foreach( $items as  $item ):<br>
        $resultArr []= makeRssItemObj( $item );<br>
    endforeach;<br>
<br>
    return $resultArr;<br>
}<br>
<br>
<br>
<br>
/**<br>
 * @param $item<br>
 * @return itemObj<br>
 */<br>
function makeRssItemObj( $item )<br>
{<br>
 //   $item->link = "demo.html";<br>
    $urlContent = fileGetContent( $item->link );  //如果不支持curl 就用file_get_content 或者socket 连接来实现.<br>
<br>
    $urlContent = @iconv("gb2312","utf-8",$urlContent);<br>
<br>
   // $content = iconv("gb2312" , "utf-8" , $content);<br>
    preg_match("/id=\"newscontent\">([\d\D]+)<div>/iU" , $urlContent , $matchArr);<br>
<br>
    $item->description = $matchArr[1]; <div class="clear">
                 
              
              
        
            </div>
</div>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn