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 相关文章推荐
支持数组的ADDSLASHES的php函数
Feb 16 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
Dec 01 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
分享3个php获取日历的函数
Sep 25 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
php实现批量修改文件名称的方法
Jul 23 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
ThinkPHP 5.1 跨域配置方法
Oct 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框架的性能
2008/01/10 PHP
php 魔术函数使用说明
2010/02/21 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
用ADODB.Stream转换
2007/01/22 Javascript
jQuery 动画基础教程
2008/12/25 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
浅谈python对象数据的读写权限
2016/09/12 Python
JSON Web Tokens的实现原理
2017/04/02 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
零基础小白多久能学会python
2020/06/22 Python
python定义类的简单用法
2020/07/24 Python
同程旅游英文网站:LY.com
2018/11/13 全球购物
售后主管岗位职责
2013/12/08 职场文书
乔迁宴答谢词
2014/01/21 职场文书
物理研修随笔感言
2014/02/14 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
房屋租赁协议书
2014/10/18 职场文书
2015年导购员工作总结
2015/04/25 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL