2011年11月5日 星期六

讀取 新聞的RSS (xml)

環境:PHP5 + Apache2.2

一開始在 simplexml_load_string直接帶URL,在自已的機器是可以跑的,但放到另一台電腦會出現simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity 的錯誤訊息,所以改成用cURL的方式將xml先抓下來,再執行,就OK了。

//新聞的RSS -- 民視
define("RSS_URL","http://news.ftv.com.tw/hinetnews/ftvnews.xml");
 //新聞 RSS 的標題的標籤
define("RSS_TITLE","Title");
//新聞 RSS 的內容的標籤                                   

define("RSS_DESCRIPTION","Description");
//新聞 RSS 的圖檔的標籤                   
define("RSS_IMAGE","Image");                                    



//初始化 PHP/cURL session
$ch = curl_init();
//定義目標網站
curl_setopt($ch, CURLOPT_URL, RSS_URL);
//以字串的方式送回來
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//不等待超過60的時間
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
//執行cURL指令(將目標網頁的內容放至字串
 $output = curl_exec($ch);
//關閉PHP/cURL session
curl_close($ch);
 
$rss =  simplexml_load_string($output);
//讀取XML的內容
foreach ($rss as $key0 => $value) {
foreach($value as $key => $value2){
switch($key){
case RSS_TITLE: //標題
$var_value['v_title'] = $value2;
break;
case RSS_DESCRIPTION:   //內容
$var_value['v_content'] = $value2;
break;
case Image: //圖檔
$var_value['v_img'] = $value2;
break;
}                  
}

}

沒有留言: