<?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. MVC项目实践,在三层架构下实现SportsStore-04,实现分页

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  2. 无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件。您在安装 VMware Workstation 后是否进行了重新引导?

    解决方法宿主机中执行如下命令重新启动: net start vmci net start vmx86 net start VMnetuserif sc config vmci=auto sc conf ...

  3. 【未解决】CImage::Save / Load 导致“线程 0xc224 已退出,返回值为 1 (0x1)”

    不知道这个返回值意味着什么,反正只要用到Save/Load就会出现这个情况. 这个链接:http://forums.codeguru.com/showthread.php?354017-The-thr ...

  4. HTML页面刷新、跳转

    HTML方式 1.页面刷新 <!-- 5秒之后,跳转到http://www.qunar.com页面 --> <meta http-equiv="refresh" ...

  5. ios-NSStringFromCGRect直接输出控件的frame

  6. Rman备份的保留策略(retention policy)

    什么是备份的保留策略(retention policy) 保留策略就是指某份备份是否要保留以及保留多久.可以使用configure retention policy命令来创建一个一致的.自动的备份保留 ...

  7. 《30天自制操作系统》11_day_学习笔记

    harib08a: 鼠标的显示问题:我们可以看到,鼠标移到窗口最右侧之后就不能再移动了,而WIN中,鼠标是可以移动到最右边隐藏起来的.怎么办?把鼠标指针显示的范围扩宽就行!我们来修改一下HariMai ...

  8. BenchmarkSQL测试脚本实现

    sqlTableCreates DROP SCHEMA IF EXISTS benchmarksql CASCADE; CREATE SCHEMA benchmarksql; create table ...

  9. SQL 数据库备、还,附、分,数据查询,聚合函数

    认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点. 数据库备 ...

  10. [转]MySQL数据库引擎介绍、区别、创建和性能测试的深入分析

    本篇文章是对MySQL数据库引擎介绍.区别.创建和性能测试进行了详细的分析介绍,需要的朋友参考下   数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...