关于PSCWS4分词乱码问题,求教!

望火的飞蛾 2014-10-15 11:25:36
弄的代码,运行后得到的结果是乱码,求解。数据库时utf8的。代码如下:


require('pscws4.class.php');
require('../class/sjk.php');

//获得HTML里的文本
function SpHtml2Text($str){
$str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
$alltext = "";
$start = 1;
for($i=0;$i<strlen($str);$i++){
if($start==0 && $str[$i]==">") $start = 1;
else if($start==1){
if($str[$i]=="<"){ $start = 0; $alltext .= " "; }
else if(ord($str[$i])>31) $alltext .= $str[$i];
}
}
$alltext = str_replace(" "," ",$alltext);
$alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
$alltext = preg_replace("/[ ]+/s"," ",$alltext);
return $alltext;
}

//获取关键词
function get_tags_arr($title){
$pscws = new PSCWS4("utf8");
$pscws->set_dict('etc/dict.xdb');
$pscws->set_rule('etc/rules.ini');
$pscws->set_ignore(true);
$t1 = SpHtml2Text($title);
$pscws->send_text($t1);
$words = $pscws->get_tops(4);// 15个字关键字
$tags = array();
foreach ($words as $val) {
$tags[] = $val['word'];
}
$arr = $tags;
foreach ($arr as $value)
{
$param1.="". $value . ",";
}
return $param1;
$pscws->close();
}
$sql = "SELECT * from ganxiang where id = 2";
$tt = query($sql);
$r = mysql_fetch_array($tt);
// while ($r = shuzu($sql)) {
$id = $r["id"];
$title = $r["gxbt"];
$smalltext = $r["gxnr"];
$titles = $title." ".$smalltext;
$keywords1=get_tags_arr($titles);
if (empty($keywords1)){
$keywords1=$title;
}else{
$keywords1=substr($keywords1, 0, -1);//去除最后个逗号;
}
echo '正在更新'.$tbname.'表中ID='.$id.'的值,更新的关键字为:'.$keywords1.'<br>';
// $sql2 = "UPDATE {$dbtbpre}ecms_$tbname SET keyboard='$keywords1' WHERE id = $id";
// $update = $empire->query("$sql2");
// }


运行网址如下:http://www.zhidaxue.com/guan/23.php
...全文
252 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-10-16
  • 打赏
  • 举报
回复
PSCWS4 不会产生乱码数据,因为没有匹配到就不会有结果 所以是你原始数据的问题

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧