This article describes the replacement sensitive string class and its usage of PHP implementation, which has a very wide application value in PHP program development. Share it for your reference. The specific methods are as follows:
The class files are as follows:
<?php /** string filter class * Date: 2013-01-09 * Author: fdipzone * Ver: v1.0 * * Func: * public replace illegal characters * public check Check whether there are illegal characters * private protect_white_list protect whitelist * private resume_white_list restore 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 String to replace * @return String 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 there is any illegal auto-constituent * @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; } /** Protect 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 restore to value * @param Array $matches key matching 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 ?>
The demo example is as follows:
<?php header("content-type:text/html;charset=utf8"); require(""); $white = array('Diaosi', 'Cao Cao'); $black = array('Dick', 'Hold'); $content = "Fuck, Cao Cao, you are a loser, I am a loser."; $obj = new StrFilter($white, $black); echo $obj->replace($content); ?>
Click on the full instance codeDownload this site
I hope this article will be helpful to everyone's learning of PHP programming.