Replacement sensitive string class instance implemented by php
- 2021-07-18 07:32:35
- OfStack
In this paper, the substitution sensitive string class implemented by php and its usage are described by examples, which has very wide application value in php program development. Share it for your reference. The specific methods are as follows:
The StrFilter. class. php class files are as follows:
<?php
/** string filter class
* Date: 2013-01-09
* Author: fdipzone
* Ver: v1.0
*
* Func:
* public replace Replace illegal characters
* public check Check for illegal characters
* private protect_white_list Protect White List
* private resume_white_list Restore White List
* private getval White list key Convert 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 Substituted 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 for illegal self
* @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 White List
* @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 White List
* @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;
}
/** White list key Restore to value
* @param Array $matches Matching white_list Adj. 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
?>
An example of demo is as follows:
<?php
header("content-type:text/html;charset=utf8");
require("StrFilter.class.php");
$white = array(' Silk ', ' Cao Cao ');
$black = array(' In fact, in fact, the ', ' Fuck ');
$content = " Fuck me , Cao Cao, you are silk , Me and you ";
$obj = new StrFilter($white, $black);
echo $obj->replace($content);
?>
Complete example code click on this site to download
I hope this article is helpful to everyone's study of php programming.