您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> php编程 >> 正文

php实现的替换敏感字符串类实例

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 StrFilter.class.php类文件如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 <?php  /** string filter class  * Date:   2013-01-09  * Author:  fdipzone  * Ver:   v1.0  *  * Func:  * public replace      替换非法字符  * public check       检查是否含有非法字符  * private protect_white_list 保护白名单  * private resume_white_list 还原白名单  * private getval       白名单 key转为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;    }        /** 替换非法字符    * @param String $content 要替換的字符串    * @return 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;    }        /** 检查是否含有非法自符    * @param String $content 字符串    * @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;    }        /** 保护白名单    * @param String $content 字符串    * @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;    }        /** 还原白名单    * @param String $content    * @return String    */    private function resume_white_list($content){      if($this->_white_list){        $content = preg_replace_callback("/[[##(.*?)##]].*?/si", array($this, 'getval'), $content);