<?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. 图像处理之泛洪填充算法(Flood Fill Algorithm)

    泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows paint的油漆桶功能.算法的原理很简单,就 ...

  2. iOS UICollectionView之三(基本用法)

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  3. openId 列表

    http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html 根据OpenID列表群发[订阅号不可用,服务号认证后可用] ...

  4. Java定时任务Timer、TimerTask与ScheduledThreadPoolExecutor详解

     定时任务就是在指定时间执行程序,或周期性执行计划任务.Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求. 一.Timer和TimerTask  Timer和Tim ...

  5. pip报ssl错误解决

     InsecurePlatformWarning: A true SSLContext object is not available.   # yum -y install openssl-deve ...

  6. MVC 上传文件并展示

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    最近在做自学MVC,遇到的问题很多,索性一点点总结 ...

  7. IDEA SDK(Software Development Kit) 介绍

    如上图标注 1 所示,IntelliJ IDEA 支持 6 种 SDK.最常用的就是 JDK 和 Android SDK,其中在创建 Android SDK 的时候如果你没有先配置一个 JDK 的话, ...

  8. Linux内核源码分析方法

    一.内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径.我们都 ...

  9. Ways to access Oracle Database in PostgreSQL

    Today, organizations stores information(data) in different database systems. Each database system ha ...

  10. JavaScript----分层导航 滚动事件

    分层导航 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...