_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); } return $content; } /** 白名单 key还原为value * @param array $matches 匹配white_list的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 ?>
复制代码
2,演示示例 demo.php
replace($content); ?>
复制代码
附,php 替换敏感字符串的类源码下载地址。