麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

PHP 正則表達式分析RSS

2020-03-16 21:17:28
字體:
來源:轉載
供稿:網友
近做了一個讀取中國新聞網RSS的頁面。首先是把RSS文檔下載下來保存到本地
 
 
復制代碼代碼如下:

$xmlfile = 'news/'.date('YmdH').'.xml'; 
$sourcexml = 'http://www.chinanews.com.cn/rss/scroll-news.xml'; 
if( !file_exists($xmlfile) ) { 
$str = @file($sourcexml) or die('加載文件時出錯。'); 
$fp = fopen($xmlfile,'w') or die('寫緩存失敗!'); 
fputs($fp,$str); 
fclose($fp); 

然后用simplexml讀取并輸出HTML 
復制代碼代碼如下:

$xml = simplexml_load_file($xmlfile); 
$c = $xml->channel; 
$k = 0; 
foreach($c->item as $v) { 
$k ++; 
echo " 
<div class=/"newsline/">·<a /> 后來遇到了一個問題,就是RSS中經常包含有一些GBK的繁體字。google了很多字符集轉換方面的文章。得出一個解法: 
復制代碼代碼如下:

$str = mb_convert_encoding( join('',$str), "gb2312", "GBK"); 

這個方法并不能繁體轉為簡體,會轉成一個亂碼,但至少能保證simplexml_load_file($xmlfile)執行成功。因為這些繁體字通常出現在描述里 
,暫且接受。 
再后來遇到另一個問題,描述里出現了形如“中新網12月30日電(聞育e?”的亂碼,simplexml_load_file失敗。 
至此考慮用正則表達式獲取標題和鏈接。(有文章說正則表達式效率可能更好,以后再驗證) 
代碼如下: 
復制代碼代碼如下:

$fp = fopen($xmlfile,'r'); 
if($fp) 

$data = fread($fp,filesize($xmlfile)); 
fclose($fp); 
preg_match_all( 
"/<item><title>(.*?)<//title><link>(.*?)<//link>/i",$data,$out,PREG_SET_ORDER); 
foreach($out as $key => $v) 

$v[1] = iconv('gbk','utf-8',$v[1]); 
echo " 
<div class=/"newsline/">·<a style="padding: 0px 0px 20px; margin: 0px; clear: both; overflow: hidden; width: 680px; color: rgb(0, 0, 0); font-family: Tahoma, Helvetica, Arial, 宋體, sans-serif; background-color: rgb(247, 252, 255);">  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线播放av片 | 欧美色爱综合 | 欧美一区二区精品夜夜嗨 | 免费观看一级淫片 | 成人毛片在线免费观看 | 久久久久久久久浪潮精品 | 精品成人在线观看 | 日韩大片在线永久观看视频网站免费 | 成人一区二区三区在线 | 中文字幕国 | 国产精品色综合 | 斗破苍穹在线观看免费完整观看 | 免费国产羞羞网站视频 | 在线成人免费网站 | japan护士性xxxⅹhd | 夜夜看| av中文字幕免费在线观看 | 国产成人在线播放视频 | 成人福利在线免费观看 | 久久在线精品视频 | 国产精品久久久久久久久久大牛 | 电影av在线 | 精品中文字幕久久久久四十五十骆 | 免费国产自久久久久三四区久久 | 国产精品视频一区二区三区四区国 | 男女羞羞视频在线观看免费 | 91网视频 | 激情久久一区二区 | 天天鲁在线视频免费观看 | av久草| 欧美毛片 | 久久在线精品视频 | 一区二区国产在线 | 一级α片免费看刺激高潮视频 | 看免费av| 在线看免电影网站 | 久章草在线视频 | 国产一级毛片高清视频完整版 | 久久精品国产精品亚洲 | 欧美十区 | 国产亚洲欧美在线视频 |