以前因為做學校論壇的需要,曾經寫過一個讀取shou論壇rrs的一段php,寫出來以供大家參考
// 下面就是定義函數來提取資料:
// 處理開始標記的屬性指
// $attrs是一個多維陣列,索引值為屬性名稱, 值就是該屬性的值
function startElement( $parser , $element_name , $attrs ){
global $temp , $current_tag ;
$current_tag = $element_name ;
switch ( $element_name ){
case ' ITEM ' :
echo '' ;
break ;
default :
break ;
}
}
// $current_tag告訴我們正在處理的標記,我們隨後會在characterData函數中使用
function endElement( $parser , $element_name , $attrs ){
global $temp , $current_tag ;
switch ( $element_name ){
case ' ITEM ' :
return_page( $temp );
$temp = '' ;
break ;
default :
break ;
}
}
// 傳送給此函數的是元素間的資料
// 例如,對Title Here,$data就等於'Title Here'
function characterData( $parser , $data ){
global $current_tag , $temp , $catID ;
switch ( $current_tag ){
case ' TITLE ' :
$temp [ ' title ' ] = $data ;
$current_tag = '' ;
break ;
case ' LINK ' :
$temp [ ' url ' ] = $data ;
$current_tag = '' ;
break ;
case ' AUTHOR ' :
$temp [ ' author ' ] = $data ;
$current_tag = '' ;
case ' DESCRIPTION ' :
$temp [ ' description ' ] = $data ;
$current_tag = '' ;
default :
break ;
}
}
?>
function return_page(){
global $temp ;
echo ' o ' . $temp [ ' title ' ] . '
' ;
}
// 分析的內容,即rrs的未知,可以是網路位置,也可以是檔案
$xml_file = ' http://club.sohu.com/list-70th-0-0.xml ' ;
// 定義字元集,預設是UTF-8
//$type = 'UTF-8';
// 建立解析器
$xml_parser = xml_parser_create ();
// 設定解析選項
//xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
//xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
// 告訴PHP發現元素時要調用什麼函數
// 這些函數同時也處理元素的屬性
xml_set_element_handler ( $xml_parser , ' startElement ' , ' endElement ' );
// 告訴PHP對字元資料調用什麼函數
xml_set_character_data_handler ( $xml_parser , ' characterData ' );
if ( ! ( $fp = fopen ( $xml_file , ' r ' ))) {
die ( " 因網路問題,暫時無法獲得資料,請稍候重新整理再試 " );
}
// 通過迴圈來解析整個檔案
while ( $data = fread ( $fp , 1024 ))
{
xml_parse ( $xml_parser , $data , feof ( $fp ));
}
fclose ( $fp );
xml_parser_free ( $xml_parser );
?>
另外可以加一段,用來預載網頁的javascript的指令碼
< SCRIPT LANGUAGE ="JavaScript" >
< SCRIPT LANGUAGE ="JavaScript" >
< style type ="text/css" >
< div id ="ld" style ="position:absolute; left:0px; top:0px; width:100%; height:100%; background-color:#ffffFF; z-index:1000;" >
< br >
< br >< br >< br >< br >< br >< br >< br >< br >< br >< br >< br >
< table align ="center" width ="50%" >
< tr >
< td align ="center" >< font color =#0000ff >< b > SOHU論壇 < br >
< br >
< font color ="#0000ff" > 正在載入請稍等 … …
< table width ="50%" align ="center" border ="0" cellspacing ="1" cellpadding ="0"