PHP实现通过中文字符比率来判断垃圾评论的方法_php技巧

本文实例讲述了PHP实现通过中文字符比率来判断垃圾评论的方法。分享给大家供大家参考。具体实现方法如下:

一、需求:

最近一段时间常常出现这类垃圾评论:一大段英文字符里夹杂一两个生僻汉字,包含了中文字符,而且又没包含啥中文的敏感词,所以就堂而皇之的通过了评论过滤。对这类评论的处理可以采取判断中文字符的比率来确认,但是也会存在一定的误判。

二、解决方案:

要用到php的两个函数strlen和mb_strlen,strlen会把单个汉字长度认定为3,mb_strlen单个汉字长度为1。同一段字符通过两个函数取得的长度之差就是实际汉字字符数的二倍,除以二就得到实际的字符数,在与mb_strlen取得的长度求比值就得到汉字占总字符数的比率。

三、实现代码:

复制代码 代码如下:

$len_all = strlen($comment['text']);                     
 $len_st = mb_strlen($comment['text'], 'UTF-8');
 if(($len_all-$len_st)/(2*$len_st) < 0.5){
        $error = "中文字符少于百分之五十"; 
 }

如果在评论中贴代码的话,就会造成中文字符比率低,需要过滤掉代码字段再来判断。

希望本文所述对大家的PHP程序设计有所帮助。

时间: 2024-11-02 11:23:19

PHP实现通过中文字符比率来判断垃圾评论的方法_php技巧的相关文章

访问编码后的中文URL返回404错误的解决方法_php技巧

昨天做一个项目,其中有一个需求是每一张图片对应一小段文字对图片的说明,普通的做法是新建一个表然后把图片名与说明文字都记录到数据库内.仔细考虑后感觉这个应用不要数据库也能完成,我实现的方案是把说明文字URLENCODE后当做文件名,这样当我读取文件的时候再把文件名URLDECODE就可以后驱图片的文字说明了. 可是通过浏览器访问图片时却提示找不到文件,如有一张图片的说明文字为"琼台博客",URLENCODE后生成的文件名如下 复制代码 代码如下: %E7%90%BC%E5%8F%B0%E

JSP中文字符乱码处理的2种方法

在编写JSP程序时,常常会碰到中文字符处理的问题,在接受request的中文字符时显示出来一串乱码.网上处理方法一箩筐,下面说说我用过的两种有效地解决办法: 1.为程序编写一个字符串处理函数,用一个静态文件保存,在需要处理中文字符的JSP页面中包含它, <%!  public String codeToString(String str)  {   String s=str;   try   {    byte temp[]=s.getBytes("ISO-8859-1");  

php中url传递中文字符,特殊危险字符的解决方法_php技巧

我们需要在url中传递中文字符或是其它的html等特殊字符,似乎总会有各种乱,不同的浏览器对他们的编码又不一样, 对于中文,一般的做法是: 把这些文本字符串传给url之前,先进行urlencode($text)一下: 但是对于一些很"危险"的字符,比如说html字符,甚至是SQL注入相关的字符,如果很明显的传给系统,出于安全考虑,系统一般都会把它们过滤掉的. 现在,我们需要这些危险字符,该这么办? 我想到的办法是 先给它们 base64_encode($text) 编码,到服务端时,又

PHP使用json_encode函数时不转义中文的解决方法_php技巧

本文实例讲述了PHP使用json_encode函数时不转义中文的解决方法.分享给大家供大家参考.具体方法如下: json_encode函数对于gbk中的中文字符是不会转换的或直接转换成空格了,本文就来给各位整理一个关于json不转义中文问题处理技巧,相信对大家有所帮助. 如果你调用 PHP 自带的 json_encode() 函数, 碰到中文时, 中文会被转义掉. 例如: 复制代码 代码如下: echo json_encode(array('你好')); // 输出: ["\u4f60\u597

php处理json时中文问题的解决方法_php技巧

操作的代码如下: 复制代码 代码如下: <?php $usr = new User(); echo json_encode($usr); ?> 很简单的代码,无中文情况一切正常,输出如下: {"PlatformID":"123213","UserID":"1023"} 一旦有中文的时候会出现两种情况. 第一种情况是对象本身的某个值为中文的属性是utf-8编码,则会有如下输出: {"PlatformID&q

修改PHP脚本使WordPress拦截垃圾评论的方法示例_php技巧

拦截英文垃圾评论 由于绝大多数的垃圾评论都是英文的,所以国内不少朋友在使用 Some Chinese Please 插件,它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓使用.虽然已经 2 年多没有更新,但还是可用的. 其实还可以简化下,直接将下面的代码添加到主题的 functions.php 文件,效果与使用 Some Chinese Please 插件相同: /* refused spam

PHP中文竖排转换实现方法_php技巧

PHP中文竖排转换程序,文本框输入文字,转换后会竖排文字. 效果图 <?php include('ccw.inc.php'); if (isset($_POST['string'])){ $ccw = new CCW; $converd = $ccw->convert($_POST['string']); } ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo

php简单统计中文个数的方法_php技巧

本文实例讲述了php简单统计中文个数的方法.分享给大家供大家参考,具体如下: 之前的公司是做外贸的用到的都是英文所以统计的长度的时候是用strlen这个函数,一直也没有错误,但是现在统计中文的时候这个就出错了,现在做一下记录测试 <?php echo strlen("你好ABC") . ""; # 输出 9 echo mb_strlen("你好ABC", 'UTF-8') . ""; # 输出 5 echo mb_str

彻底的杜绝wordpress垃圾评论的方法

wordpress的垃圾评论可是异常的多啊,不过好在wordpress自带的插件能屏蔽80%以上的垃圾评论,机器自动发的,都被存到了垃圾评论里面. 今天看了看,垃圾评论每秒至少5个,虽然大部分垃圾评论被阻止了,但这样频繁的操作数据库,不仅数据库被搞大了,而且经常还有些漏网之鱼,导致我邮箱是不是弹出你有评论待审核,非常的烦啊.   网上搜索了下,很多垃圾评论插件,比如加验证码啥的,虽然有用,但是损害了用户体验呐.根据以往搞SEO的经验,也群发过垃圾信息. 这类垃圾评论都是先网上搜索对应的接口文件,