」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何有效地從 PHP 字串中刪除控製字元?

如何有效地從 PHP 字串中刪除控製字元?

發佈於2024-11-12
瀏覽:681

How to Effectively Remove Control Characters from PHP Strings?

從PHP 字串中剝離控製字元

Q:修改正規表示式以刪除控製字元

]

一位PHP 開發人員先前使用下列表達式從字串中清除STX等控製字元:

preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)

但是結果限制性過大,引發了一個問題:如何選擇性地刪除控製字元? :利用特定的字符類別進行控製字符識別

為了精確定位控製字符,可以使用更特定的字符類:

preg_replace('/[\x00-\x1F\ x7F]/', '', $input);

此表達式符合\x00-\x1F 和\x7F 範圍內ASCII代碼的字符,包含前 32 個字符和\x7F,其中包括類似字符
preg_replace('/[\x00-\x1F\x7F]/', '', $input);

保留換行符等基本字符

如果需要保留特定字符,例如換行符或回車符,則可以排除它們的轉義序列:

preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);

在此修改後的表達式中, \x0A(換行符號)和\x0D(回車符)被排除在字元類別之外。
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);

值得注意的是,棄用PHP 5.3.0 中的ereg_replace 以及隨後在PHP 7.0.0 中的刪除要求使用preg_replace 而不是ereg_replace。 ]:

preg_replace('/[[:cntrl:]]/', '', $input);

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3