替換敏感字串的php代碼

來源:互聯網
上載者:User

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

源碼下載地址:http://download.csdn.net/detail/fdipzone/5789781

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/PHP/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.