【原文】家探しをしやすくするため、捜狐フォーカスのRSSを全文に変更しました
近々家の値段が上がりそうな私と妻。は家探しを担当していますが、彼女のクソ会社はインターネットにアクセスできないので、iPad に RSS をロードしてオフラインで読む必要がありました。その結果、Sohu Focus RSS は非全文 RSS でした。妻が家を見つけやすくするために、全文 RSS を生成するコードを書きました。これを機会に、私の生活を改善するためにコードを試してみたいと思います。コード。
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?php header("コンテンツタイプ: text/html; charset=utf-8"); ini_set("最大実行時間" ,3600); $url = "http://sz.focus.cn/common/xml/rss/news/hot.php"; $newItemArr = parseItems( $url ); $xmlItemContent = makeRssItemString( $newItemArr ); //アイテムのコンテンツを再生成し、説明をダウンロードしたコンテンツに置き換えます。 //RSS XML の先頭文字列と末尾文字列 $xmlPre = ' <?xml バージョン="1.0" エンコーディング="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 バージョン = "2.0" xmlns:focus="http://house.focus.cn" xmlns:F="http://house.focus.cn" docType="rss" F:docType="rss" > <チャンネル ページインデックス="" ページサイズ = "20" レコードカウント="" F:pageIndex="" F:ページサイズ="20" F:recordCount=""> <イメージ> <title><![CDATA[ホットニュース-捜湖焦点網深セン局]]></title> <link>http://sz.focus.cn/newscenter/xwsy.html</link> <url>http://images.house.focus.cn/img/newhouselogo.gif</url> </画像> <title>ホットニュース-捜湖フォーカスネットワーク深センステーション</title> <link>http://sz.focus.cn/newscenter/xwsy.html</link> <description><![CDATA[最も包括的かつタイムリーな中国の不動産ニュースと情報を提供します]]></description> <copyright>Copyright 2012、sohu.com Inc.、全著作権所有</copyright> <言語>zh-cn</言語> <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 。 $xmlAppend 。 エコー $xmlOutput; /*** @param $url * @return 配列 itemObj*/ 関数 parseItems( $url ) { $xmlObj = simplexml_load_file( $url ); $items = $xmlObj -> チャネル -> アイテム; $resultArr = 配列(); foreach( $items として $item ): $resultArr []= makeRssItemObj( $item ); エンドフォーリーチ; $resultArr を返します。 } /*** @param $item * @return itemObj*/ 関数 makeRssItemObj( $item ) { // $item->link = "demo.html"; $urlContent = fileGetContent( $item->link ); //curl がサポートされていない場合は、file_get_content またはソケット接続を使用します。 $urlContent = @iconv("gb2312","utf-8",$urlContent); // $content = iconv("gb2312" , "utf-8" , $content); preg_match("/id="ニュースコンテンツ">([dD]+)<divs+class="clear">/iU" , $urlContent , $matchArr); $item->description = $matchArr[1]; $item を返します。 } /*** @param $itemObjArr * @戻り文字列*/ 関数 makeRssItemString( $itemObjArr ) { $result = ""; foreach( $itemObjArr as $itemObj ): $result .= ""; $result .= "<title><![CDATA[ $itemObj->title ]]></title>"; $result .= "<link>$itemObj->link</link>"; $result .= "<description><![CDATA[ $itemObj->description ]]></description>"; $result .= "<author>mu_rain</author>"; $result .= "<pubDate>$itemObj->pubDate</pubDate>"; $result .= "<アイテム>"; エンドフォーリーチ; $result を返します。 }// ------------------------------------ /*** 文字列、オブジェクト、または JSON を定期的に表示します。 ※標準化された表示 * * @param $str オブジェクト インスタンス * @パッケージP * @subpackage 文字列 * @category Putils * @作者mu_rain * @return 混合*/ // ------------------------------------ function pr($array,$title = 'DEBUG',$type = 'array' , $width = '') { $title .= date("Y-m-d H:i:s"); $widthStr = ""; if( $width) $widthStr = "width:$width"."px"; echo "<fieldset style="-moz-border-radius:5px 5px 5px 5px; -moz-box-shadow:0px 0px 10px rgba(00,00,00,0.45);境界線: 3 ピクセルの透明な実線。パディング:3px;マージントップ:20px; "><凡例スタイル="カラー: #069;マージン:3px; $widthStr ">$title</legend>"; echo "<div style = '-moz-border-radius:10px 10px 10px 10px;font-size:14px; color:#069; border:1pxソリッド #F0FAF9; font-size:9pt; 背景:#F0FAF9; パディング:5px;'>"; print("<pre class="brush:php;toolbar:false">"); if($type == 'json') { $array = json_decode($array); } print_r($array); print(""); echo "