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 相关文章推荐
JAVA/JSP学习系列之七
Oct 09 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
php中长文章分页显示实现代码
Sep 29 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 PHP
yii使用bootstrap分页样式的实例
Jan 17 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
php中file_get_contents()函数用法实例
Feb 21 PHP
php DES加密算法实例分析
Sep 18 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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
pdo中使用参数化查询sql
2011/08/11 PHP
php创建sprite
2014/02/11 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
python计算圆周率pi的方法
2015/07/11 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
Python项目跨域问题解决方案
2020/06/22 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
物流经理自我评价
2013/09/23 职场文书
服务中心夜班服务员岗位职责
2013/11/27 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python