在某些情況下,您可能需要從字串中刪除不可列印的字元字串,例如字串操作或資料期間0-31 和127 範圍內的字串
要刪除7 位元ASCII 範圍(0-31、127-255)中的不可列印字符,請使用使用preg_replace 的下列正規表示式:
$string = preg_replace('/[x00-x1Fx7F-xFF]/', '', $string);
這將有效刪除指定範圍內的所有字元。
處理8 位元擴充ASCII,僅刪除0-31和127範圍內的字符,使用調整後的正規表示式:
$string = preg_replace('/[x00-x1Fx7F]/', '', $string);
對於UTF-8 編碼的字串,建議在正規表示式中包含/u 修飾符:
$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);
透過將 xA0 新增至字符類,可以確保準確刪除特定控製字符,例如 NO-BREAK SPACE (U 00A0)。
雖然 preg_replace 很有效,但請考慮str_replace 作為替代方案,特別是對於重複操作。
// 建立不可列印字元陣列
$badchars = array(
chr(0), chr(1), chr(2), ..., chr(31), chr(127)
);
// 使用str_replace
$str. $badchars, '', $str);
使用您自己的資料對兩種方法的效能進行基準測試以確定適合您的特定情況的最佳解決方案非常重要。
以上是如何從 PHP 字串中刪除不可列印的字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!