讀取rrs的php

來源:互聯網
上載者:User
以前因為做學校論壇的需要,曾經寫過一個讀取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"

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.