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.


Related articles: