首頁 > 後端開發 > php教程 > 如何從 PHP 字串中刪除不可列印的字元?

如何從 PHP 字串中刪除不可列印的字元?

Patricia Arquette
發布: 2024-12-10 17:07:10
原創
749 人瀏覽過

How Can I Remove Non-Printable Characters from a String in PHP?

從字串中刪除不可列印的字元

在某些情況下,您可能需要從字串中刪除不可列印的字元字串,例如字串操作或資料期間0-31 和127 範圍內的字串

7 位ASCII

要刪除7 位元ASCII 範圍(0-31、127-255)中的不可列印字符,請使用使用preg_replace 的下列正規表示式:

$string = preg_replace('/[x00-x1Fx7F-xFF]/', '', $string);

這將有效刪除指定範圍內的所有字元。

;8 位元擴充ASCII

處理8 位元擴充ASCII,僅刪除0-31和127範圍內的字符,使用調整後的正規表示式:

$string = preg_replace('/[x00-x1Fx7F]/', '', $string);

UTF-8

對於UTF-8 編碼的字串,建議在正規表示式中包含/u 修飾符:

$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);

透過將 xA0 新增至字符類,可以確保準確刪除特定控製字符,例如 NO-BREAK SPACE (U 00A0)。

附錄: str_replace 替代方案

雖然 preg_replace 很有效,但請考慮str_replace 作為替代方案,特別是對於重複操作。

// 建立不可列印字元陣列
$badchars = array(

chr(0), chr(1), chr(2), ..., chr(31),
chr(127)
登入後複製

);

// 使用str_replace
$str. $badchars, '', $str);

使用您自己的資料對兩種方法的效能進行基準測試以確定適合您的特定情況的最佳解決方案非常重要。

以上是如何從 PHP 字串中刪除不可列印的字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板