我想從字符串中刪除禁止的字符。preg_match刪除禁止的字符?
$forbidden = array("<", ">", "{", "}", "[", "]", "(", ")", "select", "update", "delete", "insert", "drop", "concat", "script");
foreach ($forbidden as $forbidChar) {
if (preg_match("/$forbidChar/i", $string)) {
return TRUE;
}
return FALSE;
}
但它沒有按預期工作,我哪裏出錯了?
你有'$ forbidden'正則表達式元字符。它不會工作,除非你逃脫它們。此外,這可以在一個正則表達式中完成。 – nickb 2012-08-09 12:56:31
查看'preg_replace',並寫入'「/ $ forbidChar/i」'或者像這樣:''/'。$ forbidChar。'/ i'',我不確定這是否是個問題, $'符號在表達式中不是沒有意義的,所以它可能在這裏引起歧義,可能''/ {$ forbidChar}/i「'會起作用,但大括號也可能被認爲是不明確的。 – 2012-08-09 12:57:25