在 PHP 開發中,處理使用者輸入的字串時,往往需要移除特殊符號以防止資安風險或資料髒污。本文提供一個實用的字串過濾函式,涵蓋常見的標點符號、全形/半形字元及特殊字元,供開發者參考與擴充。
function strFilter($str) {
// 定義需過濾的特殊字元陣列
$specialChars = [
'`', '·', '~', '!', '!', '@', '#', '$', '¥', '%', '^', '……',
'&', '*', '(', ')', '(', ')', '-', '_', '——', '+', '=', '|',
'\\', '[', ']', '【', '】', '{', '}', ';', ';', ':', ':',
'\'', '"', '“', '”', ',', ',', '<', '>', '《', '》',
'.', '。', '/', '、', '?', '?'
];
// 批次替換
$str = str_replace($specialChars, '', $str);
return trim($str);
}
str_replace() 的陣列參數特性,一次完成所有替換,效能優於多次呼叫trim() 確保乾淨$input = "測試!字串@包含#特殊$符號%……";
$clean = strFilter($input);
// 結果:"測試字串包含特殊符號"
echo $clean;
實際專案建議搭配正則表達式或 preg_replace() 處理更複雜的模式,例如:
htmlspecialchars() 防禦 XSS提醒:此函式僅為基礎示範,生產環境請根據業務需求調整過濾規則,並務必在資料庫層面使用參數化查詢防禦 SQL 注入。