找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1176|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:54:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了php实现的替换敏感字符串类及其用法,在php程序开发中有着非常广泛的应用价值。分享给大家供大家参考。具体方法如下:
StrFilter.class.php类文件如下:
_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示例如下:
replace($content);
?>
完整实例代码点击本站下载
希望本文所述对大家php程序设计的学习有所帮助。
            
            
您可能感兴趣的文章:
  • PHP 字符串正则替换函数preg_replace使用说明
  • php 字符串替换的方法
  • PHP序列号生成函数和字符串替换函数代码
  • php中替换字符串中的空格为逗号'',''的方法
  • PHP中strtr字符串替换用法详解
  • php字符串过滤与替换小结
  • php字符串替换函数substr_replace()用法实例
  • php替换字符串中间字符为省略号的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端