PHP class to replace sensitive strings (source code attached)
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-25 08:55:24
Original
1145 people have browsed it
-
- /**string filter class
- * Date: 2013-01-09
- * Author: fdipzone
- * Ver: v1.0
- * Edit: bbs.it-home.org
- * Func:
- * public replace Replace illegal characters
- * public check Check whether it contains illegal characters
- * private protect_white_list protect the whitelist
- * private resume_white_list restore the whitelist
- * private getval whitelist key to 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;
- }
-
- /**Replace illegal characters
- * @param String $content The string to be replaced
- * @return String The replaced string
- */
- 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;
- }
-
- /**Check whether it contains illegal self-characters
- * @param String $content string
- * @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;
- }
-
- /**Protection whitelist
- * @param String $content string
- * @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;
- }
-
- /**Restore whitelist
- * @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;
- }
- /**Whitelist key is restored to value
- * @param Array $matches matches the key of white_list
- * @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
-
- ?>
复制代码
2,演示示例 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 替换敏感字符串的类源码下载地址。
|
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31