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 相关文章推荐
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 PHP
在PHP中使用redis
Nov 04 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
10款PHP开源商城系统汇总介绍
Jul 23 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
PHP错误处理函数
Apr 03 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
jQuery的deferred对象使用详解
2011/08/20 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Python微信库:itchat的用法详解
2017/08/14 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
Shopee越南:东南亚与台湾电商平台
2019/02/03 全球购物
零件设计自荐信范文
2013/11/27 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers