<?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. Java控制语句——while语句

    while循环 在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体,而对于后来每一次额外的循环,都会在开始前重新计算一次. 注意:语句中应有使循环趋向于结束的语句,否则会出现无限循环 ...

  2. Python模块(getpass)

    getpass getpass模块用于输入信息时不显示,比如输入密码时隐藏.getpass模块接收用户的输入的数据类型是str类型. #!/usr/bin/env python #-*- coding ...

  3. Demo3使用bootstrap

    利用Ajax实现信息获取,使用bootstrap来美化页面,果然很强大. 将bootstrap的API添加到引用.如图程序源码结构: 页面源码: <!DOCTYPE html PUBLIC &q ...

  4. ios推送

    1. ios 在杀掉app后,只能接受到系统通知,JPUSH自定义消息不能接受到.系统通知经过实验只能接收到50左右个汉字. 2. 实现方案: 推送的时候,JPUSH推送一个消息,App客户端获取到数 ...

  5. 通用窗口类 Inventory Pro 2.1.2 Demo1(中)

    本篇想总结的是Inventory Pro中通用窗口的具体实现,但还是要强调下该插件的重点还是装备系统而不是通用窗口系统,所以这里提到的通用窗口类其实是通用装备窗口类(其实该插件中也有非装备窗口比如No ...

  6. ViewController 的代码规范

    1.#pragma mark - life cycle viewDidLoad viewWillAppear 2.#pragma mark - delegate #pragma mark collec ...

  7. 体验Java的封装性

    package com.cnblogs.java; //体验Java的封装性 /* * 如下的人类年龄赋值-300岁,显然很不合理,这种直接对类的属性赋值,有时候虽然不合理但却会编译通过. * 所以我 ...

  8. Codeforce Round #224 Div2

    一下子没打,这比赛,就被虐成狗!

  9. C++Builder 笔记

    1.界面窗口如何不显示标题栏? 在Form属性栏里面把BorderStyle的值设为None 2.wchar_t wchar_t是C/C++的字符类型,是一种扩展的存储方式,wchar_t类型主要用在 ...

  10. AngularJs Test demo &front end MVVM implementation conjecture and argue.

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...