无限星辰工作室-客户无限互联网动力之源
标题:
利用Discuz分词接口制作的文章分词函数
[打印本页]
作者:
crx349
时间:
2015-2-6 11:07
标题:
利用Discuz分词接口制作的文章分词函数
代码:
/**
* DZ在线中文分词
* @param $title string 进行分词的标题
* @param $content string 进行分词的内容
* @param $encode string API返回的数据编码
* @return 返回的关键词
*/
function dz_segment($title = '', $content = '', $encode = 'utf-8'){
if($title == ''){//标题不能为空
return false;
}
$title = rawurlencode(strip_tags($title));//标题去除HTML、XML 以及 PHP 的标签;转成url格式
$content = strip_tags($content);//去除内容当中的HTML、XML 以及 PHP 的标签。
if(strlen($content)>2400){ //在线分词服务有长度限制
$content = mb_substr($content, 0, 800, $encode);//获取字符串的部分
}
$content = rawurlencode($content);//转换url格式
$url = 'http://keyword.discuz.com/related_kw.html?title='.$title.'&content='.$content.'&ics='.$encode.'&ocs='.$encode;
$xml_array=simplexml_load_file($url);//将XML中的数据,读取到数组对象中
$result = $xml_array->keyword->result;//获取xml对象当中的关键词结果
$data = '';//我需要的是字符串,所以直接就为空吧,数组可以定义为array();
foreach ($result->item as $key => $value) {
$data .= (string)$value->kw." ";//我需要的是关键词之间用空格分割,其他可以array_push($data, (string)$value->kw);
}
if($data){
return $data;
}else{
return false;
}
}
复制代码
函数需要传入$title,$content,
$encode,$encode是默认编码utf-8,
用的时候直接调用函数就行了
例子:
http://keyword.discuz.com/related_kw.html?title='.$title.'&content='.$content.'&ics='.$encode.'&ocs='.$encode;
复制代码
欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://xmspace.net/)
Powered by Discuz! X3.4