天天看點

Discuz!自動擷取标簽實作方法

Discuz!自動擷取标簽實作方法

<?php  

//強制使用字元集  

@header('content-type: text/html; charset=gbk');     

$subjectenc ='用“超級站長”安裝discuz!和uchome,超級簡單!'; //這是标題     

$messageenc = preg_replace("/\[.+?\]/u", '', '用“超級站長”安裝discuz!和uchome,超級簡單!'); //這是内容     

//關鍵部分,這裡是将你網站的文章标題和内容發送到dz的标簽庫中去比對,傳回的是一個xml文檔  

$data = @implode('', file("http://keyword.discuz.com/related_kw.html?title=$subjectenc& content=$messageenc&ics=gbk&ocs=gbk"));   

//把标題和内容發送到dz官方去找  

if ($data){  

    //有資料傳回  

    $parser = xml_parser_create(); //建立一個 xml 解析器  

    xml_parser_set_option($parser, xml_option_case_folding, 0);  

    xml_parser_set_option($parser, xml_option_skip_white, 1);  

    xml_parse_into_struct($parser, $data, $values, $index); //将 xml 資料解析到數組中  

    xml_parser_free($parser);  

    $kws = array();  

    foreach($values as $valuearray){  

        //循環單曲xml中的資料到數組$kws  

        if ($valuearray['tag'] == 'kw' || $valuearray['tag'] == 'ekw'){  

            $kws[] = iconv('utf-8','gbk',$valuearray['value']);//編碼轉換   

        }  

    }  

    //最後出來的是數組.  

    print_r($kws);   

    $return = '';  

    if ($kws){  

        foreach($kws as $kw){  

            $return .= $kw.' '; //把擷取到的标簽用空格連結  

        $return = trim($return);  

    echo $return; //傳回比對到的标簽  

}else{  

    echo' '; //沒有比對的标簽  

}  

?>