防止從PHP 字串中過多刪除字元
在PHP 中,從字串中刪除控製字元需要仔細考慮,以避免刪除有效字元。提供的正規表示式成功刪除了控製字符,但它也無意中刪除了其他必要字符。這就提出了一個問題:程式設計師如何選擇性地刪除控製字元而不損害字串的完整性?
為了解決這個問題,可以使用更精確的正規表示式:
<code class="php">preg_replace('/[\x00-\x1F\x7F]/', '', $input);</code>
這個表達式僅針對前32 個ASCII 字元和x7F,其中包含回車符,同時根據需要保留換行符和回車符(通常表示為r 和n)。
<code class="php">preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);</code>
或者,使用[:cntrl :] 字元類別簡化了表達式:
<code class="php">preg_replace('/[[:cntrl:]]/', '', $input);</code>
注意: Ereg_replace 在PHP 中已被棄用,應替換為preg_replace。
以上是如何選擇性地從 PHP 字串中刪除控製字元而不刪除基本字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!