DZ自动获取标签【修改版】

代码
首先看代码以gbk为例 
<? php

// 强制使用字符集

@
header ( ' Content-Type: text/html; charset=gbk ' );

$subjectenc   =   $_GET [ ' subjectenc ' ];

$messageenc   =   preg_replace ( " /\[.+?\]/U " ,   '' ,   $_GET [ ' messageenc ' ]);

// 关键部分,这里是将你网站的文章标题和内容发送到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 []  =  siconv( trim ( $valuearray [ ' value ' ]) ,  ‘gbk’ ,   ' utf-8 ' ); // 编码转换

   }

}

$return   =   '' ;

if ( $kws ) {

  
foreach ( $kws   as   $kw ) {

   
$return   .=   $kw . '   ' ; // 把获取到的标签用空格链接

  }

  
$return   =   trim ( $return );

}

echo    $return ; // 返回匹配到的标签

else  {

echo   '   ' ; // 没有匹配的标签

}

?>

 

你可能感兴趣的:(标签)