Dans certains cas, vous devrez peut-être supprimer les caractères non imprimables d'une chaîne. chaîne, comme celles comprises dans les plages 0-31 et 127 lors de la manipulation de chaînes ou de données nettoyage.
Pour supprimer les caractères non imprimables dans la plage ASCII 7 bits (0-31, 127-255), utilisez l'expression régulière suivante en utilisant preg_replace :
$string = preg_replace('/[x00-x1Fx7F-xFF]/', '', $string);
Cela supprimera effectivement tous les caractères dans les plages spécifiées.
Pour gérer le format ASCII étendu 8 bits ASCII, en éliminant les caractères uniquement dans les plages 0-31 et 127, utilisez l'expression régulière ajustée :
$string = preg_replace('/[x00-x1Fx7F]/', '', $string);
Pour les chaînes codées en UTF-8, il est recommandé d'incorporer le modificateur /u dans l'expression régulière :
$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);
Cela garantit la suppression précise de caractères de contrôle spécifiques tels que NO-BREAK SPACE (U 00A0) en ajoutant xA0 à la classe de caractères.
Bien que preg_replace soit efficace, pensez à str_replace comme alternative, notamment pour les opérations répétées.
// Créer un tableau de caractères non imprimables
$badchars = array(
chr(0), chr(1), chr(2), ..., chr(31), chr(127)
);
// Remplacez les caractères indésirables en utilisant str_replace
$str2 = str_replace($badchars, '', $str);
Il est important de comparer les performances des deux approches en utilisant vos propres données pour déterminer la solution optimale pour votre cas spécifique.
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!