微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Discuz!论坛自动获取Tags标签的方法

  编程之家 jb51.cc discuz!自动获取标签实现方法,首先看代码以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 ' ';//没有匹配的标签
}
?>

  在网上还有一种类似的函数,使用方法

以下为引用的内容
<?PHP
//强制使用字符集
@header('Content-Type: text/html; charset=gbk');
$subjectenc ='用“超级站长”安装discuz!和UCHome,超级简单!'; //这是标题
$messageenc = preg_replace(/[.+?]/U,'用“超级站长”安装discuz!和UCHome,超级简单!'); //这是内容
//从内容中找标题中有TAG;
$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,$index);//将 XML 数据解析到数组中
xml_parser_free($parser);
$kws = array();
foreach($values as $valuearray) {
if(in_array($valuearray['tag'],array('kw','ekw'))) { //kw和ekw是 DZ返回回来的XML中的一个元素名
$kws[] = iconv('utf-8','gbk',$valuearray['value']);//编码转换
}
}
}
//最后出来的是数组.
print_r($kws);
?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐