php實現的替換敏感字串類執行個體,字串執行個體
本文執行個體講述了php實現的替換敏感字串類及其用法,在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程式設計的學習有所協助。
php 字串替換
", $string);echo $string;?>
php 替換指定字串中,兩個字串之間(包括這兩個字串)之間的內容
這類替換最好不好使用Regex,因為你搜尋的內容的唯一的無需使用正在,而且替換的文本較大正則效率太低。
方法是找到這兩個特殊字元串的位置,然後使用substr刪除中間部分,例子代碼:
$str='....你要處理的字串.....';
$s1='...開始字串...';
$s2='...結束字串...';
$i1=strpos($str,$s1);//開始位置
$i2=strpos($str,$s2);//結束位置
if ($i1!==false && $i2!==false)//找到
$str=substr($str,0,$i1-1) . substr($str,$i2+strlen($s2));
http://www.bkjia.com/PHPjc/882905.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/882905.htmlTechArticlephp實現的替換敏感字串類執行個體,字串執行個體 本文執行個體講述了php實現的替換敏感字串類及其用法,在php程式開發中有著非常廣泛的應用價...