温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在php中对敏感字符串进行替换

发布时间:2020-12-30 15:15:17 来源:亿速云 阅读:170 作者:Leah 栏目:开发技术

本篇文章为大家展示了怎么在php中对敏感字符串进行替换,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

StrFilter.class.php类文件如下:

<?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);      }      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  ?>

demo示例如下:

<?php    header("content-type:text/html;charset=utf8");      require("StrFilter.class.php");      $white = array('屌丝', '曹操');    $black = array('屌', '操');      $content = "我操,曹操你是屌丝,我屌你啊";      $obj = new StrFilter($white, $black);    echo $obj->replace($content);  ?>

上述内容就是怎么在php中对敏感字符串进行替换,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI