<?php

/**
 * PHP中屏蔽过滤指定关键字实现方法总结
 * http://www.111cn.net/phper/phpanqn/46225.htm
 *
 * 思路:
 * 一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。
 * 二、PHP读取关键字文本,存入一个数组
 * 三、遍历关键字数组,挨个用strpos函数去看看内容有没有关键字,如果有,返回true,没有则返回false
 */

/* PHP中用strpos函数过滤关键字 */
function keyWordCheck($str){
    $str = trim($str); // 去除空白
    $content = @file_get_contents('keyWords.txt'); // 读取关键字文本
    $arr = explode(",", $content); // 转换成数组
    for($i=0,$k=count($arr);$i<$k;$i++){ // 遍历检测
        if($arr[$i]==''){ // 如果此数组元素为空则跳过此次循环
            continue;
        }
        if(@strpos($str,trim($arr[$i]))!==false){ // 如果检测到关键字,则返回匹配的关键字,并终止运行
            //$i=$k;
            return $arr[$i];
        }
    }
    return false; // 如果没有检测到关键字则返回false
}

$content = '这里是要发布的文本内容。。。';
$keyWord = keyWordCheck($content); // 过滤关键字
if($keyWord){ // 判断是否存在关键字
    echo '你发布的内容存在关键字'.$keyWord;
}else{
    echo '恭喜!通过关键字检测';
    // 往下可以进行写库操作完成发布动作。
}

/********************************************************************************************/

/* 【例子2 (注:中文关键字过滤时使用的关键字文件为utf-8编码】 */
/**
* 被禁止的关键字检测
*
* @param string $string  要检测的字符串
* @param string $fileName 屏蔽关键字文件
* @return bool
*/
function banwordCheck( $string, $fileName ){
    if ( !($words = file_get_contents( $fileName )) ){
        die('file read error!');
    }
    $string = strtolower($string);
    $matched = preg_match('/'.$words.'/i', $string, $result);
    if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ){
        if ( strlen($result[0]) == 2 ){
              $matched = preg_match('/'.$words.'/iu', $string, $result);
        }
         if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ) {
              return true;
         }else{
              return false;
         } 
    }else{
         return false;
    }
}

$content = '测试关键字';
if ( banwordCheck($content, './banwords.txt') ){
    echo "matched! ";
}else{
    echo "no match! ";
}

PHP过滤评论关键词的更多相关文章

  1. [超详细] Python3爬取豆瓣影评、去停用词、词云图、评论关键词绘图处理

    爬取豆瓣电影<大侦探皮卡丘>的影评,并做词云图和关键词绘图第一步:找到评论的网页url.https://movie.douban.com/subject/26835471/comments ...

  2. php 过滤敏感关键词

    php 过滤敏感关键词 function badwords($content){ $keywords=M("config")->where("name='badwo ...

  3. 数据挖掘:基于Spark+HanLP实现影视评论关键词抽取(1)

    1. 背景 近日项目要求基于爬取的影视评论信息,抽取影视的关键字信息.考虑到影视评论数据量较大,因此采用Spark处理框架.关键词提取的处理主要包含分词+算法抽取两部分.目前分词工具包较为主流的,包括 ...

  4. Microsoft.AlphaImageLoader过滤评论

    Microsoft.AlphaImageLoader是IE滤镜的一种,其主要作用就是对图片进行透明处理.尽管FireFox和IE7以上的IE浏览器已经支持透明的PNG图片,可是就IE5-IE6而言还是 ...

  5. Shell 脚本模拟 milter 实现黑白名单及关键词过滤

    程序执行流程:1. 开始接受邮件.2. 检查发件人是否在黑名单内,如果是拒绝接受;否则继续3. 检查发件人是否在白名单内,如果是接收邮件;否则继续4. 对邮件进行关键字过滤,如果邮件中包含被过滤的关键 ...

  6. 转:鏖战双十一-阿里直播平台面临的技术挑战(webSocket, 敏感词过滤等很不错)

    转自:http://www.infoq.com/cn/articles/alibaba-broadcast-platform-technology-challenges 鏖战双十一-阿里直播平台面临的 ...

  7. 灵玖软件Nlpir Parser语义智能内容过滤

    Internet是全球信息共享的基础设施,是一种开放和面向 所有用户的技术.它一方面要保证信息方便.快捷的共享;另一方面要防止垃圾信息的传播.网络内容分析是一种管理信 息传播的重要手段.它是网络信息安 ...

  8. python制作爬虫爬取京东商品评论教程

    作者:蓝鲸 类型:转载 本文是继前2篇Python爬虫系列文章的后续篇,给大家介绍的是如何使用Python爬取京东商品评论信息的方法,并根据数据绘制成各种统计图表,非常的细致,有需要的小伙伴可以参考下 ...

  9. NetCloud——一个网易云音乐评论抓取和分析的Python库

    在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...

随机推荐

  1. 使用RMAN对控制文件进行restore

    控制文件的默认备份格式是: c-IIIIIIIIII-YYYYMMDD-QQ 其中: c:表示控制文件 IIIIIIIIII:表示DBID YYYYMMDD:备份的时间戳 QQ:16进制的序列号,从0 ...

  2. 使用 jQuery Deferred 和 Promise 创建响应式应用程序

    这篇文章,我们一起探索一下 JavaScript 中的 Deferred 和 Promise 的概念,它们是 JavaScript 工具包(如Dojo和MochiKit)中非常重要的一个功能,最近也首 ...

  3. cache与SDRAM

    hugohong hugohong 本版等级:   #2 得分:20回复于: 2009-04-19 21:51:03 牛人说的,拿出来分享一下:cache是高速缓冲, 解决高速cpu和相对低速sdra ...

  4. 使用opencv显示视频的方法

    下面对使用opencv显示视频做一个简单的记录.当然,网上这方面的资料已经数不胜数了,我只是将其简单记录,总结一下. 在opencv中显示视频主要有: (1)从本地读取视频和调用摄像头读取视频 (2) ...

  5. RESTful架构详解(转)

    1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...

  6. A*啦啦啦

    ...A*是个啥都不知道.. 大家注意K短路可能不存在!!!! 果然是s==t的问题……加个if(s==t) k++就A了…… 单用Dij,tle到死 原来是单向k短路........开始以为是双向的 ...

  7. 搞ACM的你们伤不起

    这个虽然看过很多遍了,但是还是看着想笑,有时候真的想问问自己为什么这么菜,血流得还不够? 劳资六年前开始搞ACM啊!!!!!!!!!!  从此踏上了尼玛不归路啊!!!!!!!!!!!!  谁特么跟劳资 ...

  8. CentOS 7 自动更新时间日期

    # ntpdate time.nist.gov 或 # rdate -s time.nist.gov 下列服务器可用 time-nw.nist.gov

  9. java BigInteger

    用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂.用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理.下面是写的一些Java中 ...

  10. sql ROUND() 函数三个参数的含义

    ROUND的格式:ROUND(p1,p2,p3),其作用是取四舍四入值P1:要被四舍五入的数字P2:保留的小数位数P3:如果为0或不输入,则表示进P1进入四舍五入,如ROUND(123.86,1) = ...