php实现的替换敏感字符串类实例
2015-01-24信息快讯网
这篇文章主要介绍了php实现的替换敏感字符串类,包括了常见的非法字符串检测、白名单、黑名单及字符替换等功能,非常实用,需要的朋友可以参考下
本文实例讲述了php实现的替换敏感字符串类及其用法,在php程序开发中有着非常广泛的应用价值。分享给大家供大家参考。具体方法如下:
StrFilter.class.php类文件如下:
<?php /** string filter class * Date: 2013-01-09 * Author: fdipzone * Ver: v1.0 * * Func: * public replace 替换非法字符 * public check 检查是否含有非法字符 * private protect_white_list 保护白名单 * private resume_white_list 还原白名单 * private getval 白名单 key转为value */ class StrFilter{ // class start private $_white_list = array(); private $_black_list = array(); private $_replacement = '*'; private $_LTAG = '[[##'; private $_RTAG = '##]]'; /** * @param Array $white_list * @param Array $black_list * @param String $replacement */ public function __construct($white_list=array(), $black_list=array(), $replacement='*'){ $this->_white_list = $white_list; $this->_black_list = $black_list; $this->_replacement = $replacement; } /** 替换非法字符 * @param String $content 要替Q的字符串 * @return String 替Q后的字符串 */ public function replace($content){ if(!isset($content) || $content==''){ return ''; } // protect white list $content = $this->protect_white_list($content); // replace black list if($this->_black_list){ foreach($this->_black_list as $val){ $content = str_replace($val, $this->_replacement, $content); } } // resume white list $content = $this->resume_white_list($content); return $content; } /** 检查是否含有非法自符 * @param String $content 字符串 * @return boolean */ public function check($content){ if(!isset($content) || $content==''){ return true; } // protect white list $content = $this->protect_white_list($content); // check if($this->_black_list){ foreach($this->_black_list as $val){ if(strstr($content, $val)!=''){ return false; } } } return true; } /** 保护白名单 * @param String $content 字符串 * @return String */ private function protect_white_list($content){ if($this->_white_list){ foreach($this->_white_list as $key=>$val){ $content = str_replace($val, $this->_LTAG.$key.$this->_RTAG, $content); } } return $content; } /** 还原白名单 * @param String $content * @return String */ private function resume_white_list($content){ if($this->_white_list){ $content = preg_replace_callback("/\[\[##(.*?)##\]\].*?/si", array($this, 'getval'), $content); } return $content; } /** 白名单 key还原为value * @param Array $matches 匹配white_list的key * @return String white_list val */ private function getval($matches){ return isset($this->_white_list[$matches[1]])? $this->_white_list[$matches[1]] : ''; // key->val } } // class end ?>
demo示例如下:
<?php header("content-type:text/html;charset=utf8"); require("StrFilter.class.php"); $white = array('潘', '曹操'); $black = array('', '操'); $content = "我操,曹操你是潘,我拍惆"; $obj = new StrFilter($white, $black); echo $obj->replace($content); ?>
完整实例代码点击本站下载
希望本文所述对大家php程序设计的学习有所帮助。
php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
php+mysqli实现批量替换数据库表前缀的方法
php匹配字符中链接地址的方法
php中最简单的字符串匹配算法
PHP实现将科学计数法转换为原始数字字符串的方法
php表单敏感字符过滤类
php提取字符串中网站url地址的方法
PHP清除字符串中所有无用标签的方法
PHP中strtr字符串替换用法详解
php使用str_replace实现输入框回车替换br的方法
thinkphp模板赋值与替换实例简述
php实现的返回数据格式化类实例
php实现的发送带附件邮件类实例
PHP实现AES256加密算法实例
php生成QRcode实例
php实现的Captcha验证码类实例
php中unserialize返回false的解决方法
php实现根据字符串生成对应数组的方法
PHP正则替换函数preg_replace和preg_replace_callback使用总结
PHP正则表达式替换站点关键字链接后空白的解决方法
PHP处理JSON字符串key缺少双引号的解决方法
字符串长度函数strlen和mb_strlen的区别示例介绍
PHP处理Json字符串解码返回NULL的解决方法
ThinkPHP模板替换与系统常量及应用实例教程
PHP获取一个字符串中间一部分字符的方法
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
php中替换字符串中的空格为逗号','的方法