首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 字串特殊符號過濾實作指南

     編輯:PHP 綜合知識

前言

在 PHP 開發中,處理使用者輸入的字串時,往往需要移除特殊符號以防止資安風險或資料髒污。本文提供一個實用的字串過濾函式,涵蓋常見的標點符號、全形/半形字元及特殊字元,供開發者參考與擴充。

核心過濾函式

function strFilter($str) {
    // 定義需過濾的特殊字元陣列
    $specialChars = [
        '`', '·', '~', '!', '!', '@', '#', '$', '¥', '%', '^', '……',
        '&', '*', '(', ')', '(', ')', '-', '_', '——', '+', '=', '|',
        '\\', '[', ']', '【', '】', '{', '}', ';', ';', ':', ':',
        '\'', '"', '“', '”', ',', ',', '<', '>', '《', '》',
        '.', '。', '/', '、', '?', '?'
    ];

    // 批次替換
    $str = str_replace($specialChars, '', $str);
    
    return trim($str);
}

優化重點說明

  • 陣列化管理:將所有特殊字元集中在陣列中,便於維護與擴充
  • 單次替換:使用 str_replace() 的陣列參數特性,一次完成所有替換,效能優於多次呼叫
  • 全形/半形兼顧:同時處理中英文標點,避免遺漏
  • 去除首尾空白:回傳前執行 trim() 確保乾淨

使用範例

$input = "測試!字串@包含#特殊$符號%……";
$clean = strFilter($input);
// 結果:"測試字串包含特殊符號"
echo $clean;

進階建議

實際專案建議搭配正則表達式或 preg_replace() 處理更複雜的模式,例如:

  • 保留特定字元(如底線、連字號)
  • 處理 Unicode 範圍字元
  • 結合 htmlspecialchars() 防禦 XSS

提醒:此函式僅為基礎示範,生產環境請根據業務需求調整過濾規則,並務必在資料庫層面使用參數化查詢防禦 SQL 注入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved