无限星辰工作室-客户无限互联网动力之源

标题: 利用Discuz分词接口制作的文章分词函数 [打印本页]

作者: crx349    时间: 2015-2-6 11:07
标题: 利用Discuz分词接口制作的文章分词函数
代码:
  1. /**
  2. * DZ在线中文分词
  3. * @param $title string 进行分词的标题
  4. * @param $content string 进行分词的内容
  5. * @param $encode string API返回的数据编码
  6. * @return  返回的关键词
  7. */
  8. function dz_segment($title = '', $content = '', $encode = 'utf-8'){
  9.     if($title == ''){//标题不能为空
  10.         return false;
  11.     }
  12.     $title = rawurlencode(strip_tags($title));//标题去除HTML、XML 以及 PHP 的标签;转成url格式
  13.     $content = strip_tags($content);//去除内容当中的HTML、XML 以及 PHP 的标签。
  14.     if(strlen($content)>2400){ //在线分词服务有长度限制
  15.         $content =  mb_substr($content, 0, 800, $encode);//获取字符串的部分
  16.     }
  17.     $content = rawurlencode($content);//转换url格式
  18.     $url = 'http://keyword.discuz.com/related_kw.html?title='.$title.'&content='.$content.'&ics='.$encode.'&ocs='.$encode;
  19.     $xml_array=simplexml_load_file($url);//将XML中的数据,读取到数组对象中  
  20.     $result = $xml_array->keyword->result;//获取xml对象当中的关键词结果
  21.     $data = '';//我需要的是字符串,所以直接就为空吧,数组可以定义为array();
  22.     foreach ($result->item as $key => $value) {
  23.             $data .= (string)$value->kw." ";//我需要的是关键词之间用空格分割,其他可以array_push($data, (string)$value->kw);
  24.     }
  25.     if($data){
  26.         return $data;
  27.     }else{
  28.         return false;
  29.     }
  30. }
复制代码

函数需要传入$title,$content,$encode,$encode是默认编码utf-8,用的时候直接调用函数就行了


例子:
  1. http://keyword.discuz.com/related_kw.html?title='.$title.'&content='.$content.'&ics='.$encode.'&ocs='.$encode;
复制代码








欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://www.xmspace.net/) Powered by Discuz! X3.4