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 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
基于python发送邮件的乱码问题的解决办法
Apr 25 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 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入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
php表单处理操作
2017/11/16 PHP
php unlink()函数使用教程
2018/07/12 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
学生会主席就职演讲稿
2014/01/14 职场文书
小学生家长评语大全
2014/02/10 职场文书
小学数学国培感言
2014/03/10 职场文书
安全生产责任书范本
2014/04/15 职场文书
工程承诺书怎么写
2014/05/24 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python
Nginx利用Logrotate实现日志分割
2022/05/20 Servers
cypress测试本地web应用
2022/06/01 Javascript