場合によっては、文字列から印刷不可能な文字を削除する必要がある場合があります。文字列 (文字列操作またはデータ中の 0 ~ 31 および 127 の範囲内の文字列など)
7 ビット ASCII 範囲 (0 ~ 31、127 ~ 255) の印刷不可能な文字を削除するには、次のコマンドを使用します。 preg_replace を使用した次の正規表現:
$string = preg_replace('/[x00-x1Fx7F-xFF]/', '', $string);
これにより、指定された範囲内のすべての文字が効果的に削除されます。
を処理するには8 ビット拡張 ASCII、0 ~ 31 および 127 の範囲の文字のみを削除し、調整された正規表現を使用します:
$string = preg_replace('/[x00-x1Fx7F]/', '', $string);
UTF-8 でエンコードされた文字列の場合は、正規表現に /u 修飾子を組み込むことをお勧めします。
$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);
これにより、xA0 を文字クラス。
preg_replace は効率的ですが、特に反復操作の場合は、str_replace を代替手段として検討してください。
// 印刷不可能な文字の配列を作成します
$badchars = array(
chr(0), chr(1), chr(2), ..., chr(31), chr(127)
);
// str_replace を使用して不要な文字を置換します
$str2 = str_replace($badchars, '', $str);
独自のデータを使用して両方のアプローチのパフォーマンスをベンチマークし、特定の目的に最適なソリューションを決定することが重要です。場合。
以上がPHP の文字列から印刷不可能な文字を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。