從 PHP 字串中刪除控製字元
使用 PHP 字串時,有時需要刪除 STX 等控製字元。在嘗試使用 preg_replace 時,您可能會發現它刪除了超出控製字元的過多字元。我們在這裡的重點是向您展示如何選擇性地僅刪除控製字元。
要實現此目的,您可以使用以下程式碼:
preg_replace('/[\x00-\x1F\x7F]/', '', $input);
此模式匹配並取代十六進位值\x00 到\x1F 範圍內的字元以及值\x7F。此範圍包含前 32 個 ASCII 字元以及 DEL 字元。
如果要保留某些控製字符,例如換行符和回車符,可以相應地調整模式:
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);
透過使用此模式,您可以刪除所有控製字元除了換行符號(\n) 和回車符號(\r)。
需要注意的是,ereg_replace 在 PHP >= 5.3.0 中已棄用,並在 PHP >= 7.0.0 中刪除。為了確保相容性,請使用 preg_replace 代替:
preg_replace('/[[:cntrl:]]/', '', $input);
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3