代码:
- /**
- * 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;
复制代码
|
|