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安全配置
Oct 09 PHP
用定制的PHP应用程序来获取Web服务器的状态信息
Oct 09 PHP
PHP动态变静态原理
Nov 25 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
php有道翻译api调用方法实例
Dec 22 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
Yii2处理密码加密及验证的方法
May 12 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计算两个路径的相对路径
2013/06/14 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
python多重继承实例
2014/10/11 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Python命令行解析模块详解
2018/02/01 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Pytorch Tensor的统计属性实例讲解
2019/12/30 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
用Python开发app后端有优势吗
2020/06/29 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
python re模块常见用法例举
2021/03/01 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
秋季运动会加油稿200字
2014/01/11 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
大学生就业策划书范文
2014/04/04 职场文书
大二学习计划书范文
2014/04/27 职场文书
毕业评语大全
2014/05/04 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
培训督导岗位职责
2015/04/10 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
css height属性中的calc方法详解
2021/06/03 HTML / CSS