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函数utf8转gb2312编码
Dec 21 PHP
PHP伪静态页面函数附使用方法
Jun 20 PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
PHP可变函数的使用详解
Jun 14 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
初识Laravel
Oct 30 PHP
php操作xml入门之cdata区段
Jan 23 PHP
浅谈json_encode用法
Mar 05 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
Aug 17 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 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
PHP5中MVC结构学习
2006/10/09 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
document.getElementById介绍
2011/09/13 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
js实现楼层导航功能
2017/02/23 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
python聊天程序实例代码分享
2013/11/18 Python
python实现读取命令行参数的方法
2015/05/22 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
Python3几个常见问题的处理方法
2019/02/26 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
python scatter函数用法实例详解
2020/02/11 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
红领巾广播站广播稿
2014/02/01 职场文书
股权转让协议书
2014/12/07 职场文书
MySQL 条件查询的常用操作
2022/04/28 MySQL