我為了過濾使用者輸入可能造成SQL Injection問題,所以用preg_replace()去過濾成特定輸出,我希望產生的效果是:
$str = "1#2,'3'4--";
$pattern = '/[\W]/';
$replacement = '';
$val = preg_replace($pattern, $replacement, $str);
echo $str; // 1234
我想顯示的是 12,34,請問第2點可如何實現?
我想這問題應該不太算是php 算正規表示的問題
https://regex101.com/ 可透過此網站測試
改成以下,去除掉 非文字、逗號 就是你要的結果了[\W,]
不過也如樓上 wrxue 所說
避免injection不會這樣處理,應該透過 bind variable
方式進行處理