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开发者事半功倍的十大技巧小结
Apr 20 PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
php删除数组元素示例分享
Feb 17 PHP
3种php生成唯一id的方法
Nov 23 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
Feb 26 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
PHP钩子实现方法解析
May 21 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 防恶意刷新实现代码
2010/05/16 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
vue移动端实现红包雨效果
2020/06/23 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
Python实现Const详解
2015/01/27 Python
Python去除列表中重复元素的方法
2015/03/20 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
如何定义TensorFlow输入节点
2020/01/23 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
军训心得体会
2013/12/31 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
给客户的检讨书
2014/12/21 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
法制工作总结2015
2015/07/23 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏