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中利用XML技术构造远程服务(下)
Oct 09 PHP
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
PHP clearstatcache()函数详解
Mar 02 PHP
php对大文件进行读取操作的实现代码
Jan 23 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 PHP
PHP学习笔记之session
May 06 PHP
thinkphp5实现无限级分类
Feb 18 PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 PHP
用Laravel轻松处理千万级数据的方法实现
Dec 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
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php输入流php://input使用浅析
2014/09/02 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
python如何使用unittest测试接口
2018/04/04 Python
python psutil监控进程实例
2019/12/17 Python
Django中的session用法详解
2020/03/09 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
中考标语大全
2014/06/05 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python