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 相关文章推荐
使用sockets:从新闻组中获取文章(三)
Oct 09 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
discuz的php防止sql注入函数
Jan 17 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
分享PHP header函数使用教程
Sep 05 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
PHP生成加减算法方式的验证码实例
Mar 12 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
PHP个人网站架设连环讲(一)
2006/10/09 PHP
php编程每天必学之验证码
2016/03/03 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
jquery easyui使用心得
2014/07/07 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
python实现决策树
2017/12/21 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
python实现flappy bird小游戏
2018/12/24 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
Python银行系统实战源码
2019/10/25 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
Django框架请求生命周期实现原理
2020/11/13 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
校园摄影活动策划方案
2014/02/05 职场文书
安全宣传标语口号
2014/06/06 职场文书
拓展训练激励口号
2014/06/17 职场文书
课程设计的心得体会
2014/09/03 职场文书
反腐倡廉观后感
2015/06/08 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android