萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php實現的替換敏感字符串類實例

php實現的替換敏感字符串類實例

 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); 
copyright © 萬盛學電腦網 all rights reserved