PHP 超強過濾函式

2021-09-06 18:47:39 字數 1494 閱讀 9214

發現近期總是在寫過濾的一些問題,也寫了一兩年php了,發現過濾問題一直是個大問題,不才,以下整理出來了乙個通用的基於白名單的過濾函式,

假設發現你那裡用不了,聯絡我的qq852208555,一起**吧!

gbk gb2312 編碼的實現

<?php 

//白名單過濾模式開始

$a='愛樂sdsaddda22313\'@';

echo alfilter($a,'cwd_','@\'');

/*過濾類分為幾種型別

* $str(待過濾字串),$operate(操作碼),$ext(白名單擴充套件)

* 操作碼簡寫(不分大寫和小寫):1.漢字c 2.數字d 3.字母w 4.特殊符號t 5.下劃線_

經典的呼叫模式:

僅僅同意數字:alfilter($a,'d')

僅僅同意漢字:alfilter($a,'c')

僅僅同意字母陣列漢字:alfilter($a,'cwd')

同意字母數字漢字下劃線特殊字元:alfilter($a,'cwd_t')

擴充套件模式:alfilter($a,'cwd_t','@')

alfilter($a,'cwd_','@');//同意特殊字元 @

alfilter($a,'cwd_','@\'');//同意特殊字元 @ '(加了反斜槓轉義)

*/function alfilter($str=null,$operate,$ext=null)

以下是utf-8的模式:(主要是漢字匹配不同)

alfilter($str=null,$operate,$ext=null)-\x";

$dp='0-9';

$wp='a-za-z';

$tp='@#$%^&*()-+=';

$_p='_';

$pattern="/^[";

$oarr=str_split(strtolower($operate));//拆分操作符

if (in_array('c', $oarr)) $pattern.=$cp;

if (in_array('d', $oarr)) $pattern.=$dp;

if (in_array('w', $oarr)) $pattern.=$wp;

if (in_array('t', $oarr)) $pattern.=$tp;

if (in_array('_', $oarr)) $pattern.=$_p;

if($ext) $pattern.=$ext;

$pattern.="]+$/u";

if(!preg_match($pattern,$str))

return 0;

else

return $str;

}

php過濾函式

addcslashes 以 c 語言風格使用反斜線轉義字串中的字元 addslashes 使用反斜線引用字串 strip tags 從字串中去除 html 和 php 標記 stripcslashes 反引用乙個使用 addcslashes 轉義的字串 stripslashes 反引用乙個引用字串 ...

php 過濾特殊字元函式

1.過濾html str htmlspecialchars decode str str preg replace str 2.htmlspecialchars 函式把一些預定義的字元轉換為 html 實體。3.strip tags 函式剝去字串中的 html xml 以及 php 的標籤。4.ch...

php過濾和轉義函式

函式名 釋義介紹 htmlspecialchars 將與 單雙引號 大於和小於號化成html格式 轉成 轉成 轉成 轉成 轉成 htmlentities 所有字元都轉成html格式 除上面htmlspecialchars字元外,還包括雙位元組字元顯示成編碼等。addslashes 單雙引號 反斜線及...