SoFunction
Updated on 2025-03-02

Replacement sensitive string class instances implemented by php

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.