Maison > développement back-end > tutoriel php > Comment supprimer efficacement les caractères non imprimables des chaînes dans différents encodages de caractères ?

Comment supprimer efficacement les caractères non imprimables des chaînes dans différents encodages de caractères ?

Linda Hamilton
Libérer: 2024-12-10 19:32:11
original
515 Les gens l'ont consulté

How to Effectively Remove Non-Printable Characters from Strings in Different Character Encodings?

Comment supprimer les caractères non imprimables d'une chaîne

Lorsque vous travaillez avec des données textuelles, il est souvent nécessaire de supprimer les caractères non imprimables pour assurer la cohérence et la lisibilité. Cela inclut les caractères de contrôle (0 à 31) et les caractères ASCII étendus (127 et plus).

ASCII 7 bits

Pour les chaînes ASCII 7 bits, vous pouvez utilisez l'expression régulière suivante pour supprimer les caractères non imprimables :

$string = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $string);
Copier après la connexion

8-Bit Extended ASCII

Pour conserver les caractères compris entre 128 et 255, ajustez l'expression régulière à :

$string = preg_replace('/[\x00-\x1F\x7F]/', '', $string);
Copier après la connexion

UTF-8

Pour Chaînes UTF-8, utilisez le modificateur /u pour s'adapter à Unicode caractères :

$string = preg_replace('/[\x00-\x1F\x7F\xA0]/u', '', $string);
Copier après la connexion

Alternative : str_replace

Bien que preg_replace soit généralement efficace, vous pouvez également utiliser str_replace comme suit :

// Create an array of non-printable characters
$badchars = array(
    // Control characters
    chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7), chr(8),
    chr(9), chr(10), chr(11), chr(12), chr(13), chr(14), chr(15), chr(16),
    chr(17), chr(18), chr(19), chr(20), chr(21), chr(22), chr(23), chr(24),
    chr(25), chr(26), chr(27), chr(28), chr(29), chr(30), chr(31),
    // Non-printable characters
    chr(127)
);

// Replace the bad characters
$str2 = str_replace($badchars, '', $str);
Copier après la connexion

Considérations relatives aux performances

Que ce soit preg_replace ou str_replace est plus rapide en fonction de la longueur de la chaîne. Pour les chaînes courtes, preg_replace est généralement plus rapide, tandis que str_replace peut être plus efficace pour les chaînes plus longues. Une analyse comparative est recommandée pour déterminer la meilleure approche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal