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 相关文章推荐
Mysql和网页显示乱码解决方法集锦
Mar 27 PHP
PHP批量生成缩略图的代码
Jul 19 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
9个PHP开发常用功能函数小结
Jul 15 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
PHP实现微信对账单处理
Oct 01 PHP
Yii框架的路由配置方法分析
Sep 09 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边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
Jquery 基础学习笔记
2009/05/29 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
JS原型对象通俗&quot;唱法&quot;
2012/12/27 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
Python实现将xml导入至excel
2015/11/20 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
如何执行一个shell程序
2012/11/23 面试题
公司年底活动方案
2014/08/17 职场文书
外出听课学习心得体会
2016/01/15 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技