ホームページ >バックエンド開発 >PHPチュートリアル >必須文字を削除せずに、PHP 文字列から制御文字を選択的に削除するにはどうすればよいですか?

必須文字を削除せずに、PHP 文字列から制御文字を選択的に削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-27 03:49:03988ブラウズ

 How to Selectively Remove Control Characters from PHP Strings Without Removing Essential Characters?

PHP 文字列からの文字の過剰な削除の防止

PHP では、文字列から制御文字を削除するには、有効な文字が削除されないよう慎重に検討する必要があります。指定された正規表現は制御文字を正常に削除しますが、他の重要な文字も意図せず削除してしまいます。このため、プログラマは文字列の整合性を損なうことなく制御文字を選択的に削除するにはどうすればよいでしょうか?

この問題に対処するには、より正確な正規表現を使用できます。

<code class="php">preg_replace('/[\x00-\x1F\x7F]/', '', $input);</code>

This式は、必要に応じて改行と復帰 (r と n で示されることが多い) を保持しながら、復帰を含む最初の 32 文字と x7F のみを対象とします。

<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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。