<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="PHP通过strlen和mb_strlen实现通过中文字符比率来判断垃圾评论的方法" id="card1">
<p> 游客</p><p>
标题:PHP通过strlen和mb_strlen实现通过中文字符比率来判断垃圾评论的方法<br/>
正文:<br/>
本文实例讲述了PHP实现通过中文字符比率来判断垃圾评论的方法。分享给大家供大家参考。具体实现方法如下：一、需求：最近一段时间常常出现这类垃圾评论：一大段英文字符里夹杂一两个生僻汉字，包含了中文字符，而且又没包含啥中文的敏感词，所以就堂而皇之的通过了评论过滤。对这类评论的处理可以采取判断中文字符的比率来确认，但是也会存在一定的误判。二、解决方案：要用到php的两个函数strlen和mb_strlen，strlen会把单个汉字长度认定为3，mb_strlen单个汉字长度为1。同一段字符通过两个函数取得的长度之差就是实际汉字字符数的二倍，除以二就得到实际的字符数，在与mb_strlen取得的长度求比值就得到汉字占总字符数的比率。三、实现代码：代码如下:$len_all = strlen($comment['text']);//@camnpr                      $len_st = mb_strlen($comment['text'], 'UTF-8');  if(($len_all-$len_st)/(2*$len_st) &amp;lt; 0.5){         $error = &amp;quot;中文字符少于百分之五十&amp;quot;;   }如果在评论中贴代码的话，就会造成中文字符比率低，需要过滤掉代码字段再来判断。<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1916&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1916&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1916&amp;Page=1">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1916">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1916">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>