PHP屏蔽过滤指定关键字的方法


Posted in PHP onNovember 03, 2014

本文实例讲述了PHP屏蔽过滤指定关键字的方法。分享给大家供大家参考。具体分析如下:

实现思路:

一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。
二、PHP读取关键字文本,存入一个数组
三、遍历关键字数组,挨个用strpos函数去看看内容有没有关键字,如果有,返回true,没有则返回false

PHP代码如下:

/* PHP中用strpos函数过滤关键字 */

// 关键字过滤函数

function keyWordCheck($content){

// 去除空白

$content = trim($content);

// 读取关键字文本

$content = @file_get_contents('keyWords.txt');

// 转换成数组

$arr = explode("n", $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];

} 

}

// 如果没有检测到关键字则返回false 

return 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程序设计有所帮助。

PHP 相关文章推荐
搜索和替换文件或目录的一个好类--很实用
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
怎样去阅读一份php源代码
Aug 21 PHP
php session和cookie使用说明
Apr 07 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 PHP
php中count获取多维数组长度的方法
Nov 03 #PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 #PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 #PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 #PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 #PHP
ThinkPHP分组下自定义标签库实例
Nov 01 #PHP
PHP根据两点间的经纬度计算距离
Oct 31 #PHP
You might like
Terran历史背景
2020/03/14 星际争霸
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
Python代码实现KNN算法
2017/12/20 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
python实现最小二乘法线性拟合
2019/07/19 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
第二课堂活动总结
2014/05/07 职场文书
体育馆的标语
2014/06/24 职场文书
品牌转让协议书
2014/08/20 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书