Maison > Article > développement back-end > Comment supprimer les espaces chinois en php
Comment supprimer les espaces chinois en php : 1. Utilisez l'expression régulière "preg_replace('/^[(xc2xa0)|s]+/', '', $new['content']);" ; 2. Passer Le remplacement régulier en Mo supprime les espaces chinois.
L'environnement d'exploitation de cet article : système windows7, version PHP7.1, ordinateur DELL G3
Comment supprimer les espaces chinois en php ?
Code PHP régulier pour supprimer les espaces chinois
Il existe plusieurs espaces chinois : il n'y a pas de moyen simple de résoudre le problème, comme les espaces demi-chasse et pleine largeur, comme les sauts de paragraphe, seront affichés comme vide, puis laissez les gens le comprendre mal. C'est un espace, donc avant de supprimer l'espace, vous devez d'abord confirmer si le vôtre est un espace. J'analyserai ces deux solutions ci-dessous.
(1)/[s| ]+/Cela fera l'affaire. Notez que | est suivi d'un espace pleine largeur
(2) Vous pouvez également essayer le remplacement régulier en mb
De plus, lorsque vous utilisez Unicode, ajoutez le descripteur d'expression régulière u
Mais comme il existe de nombreux espaces qui apparaissent comme des espaces en chinois, par exemple, celui que j'ai rencontré ci-dessous a un codage Unicode de C2A0. Le problème peut être résolu en utilisant l'expression suivante.
$new['content'] = preg_replace('/^[(\xc2\xa0)|\s]+/', '', $new['content']);
Voici un détail : xc2a0 est à l'origine un caractère Unicode, mais il ne peut pas correspondre à plusieurs caractères et ne peut en remplacer qu'un [Cela peut être dû au problème d'octet] Plus tard, j'ai soudainement trouvé une telle méthode d'écriture, qui a résolu le problème. problème De plus, afin d'éviter la situation où les espaces chinois et les espaces anglais sont mélangés, un s est ajouté à la fin pour l'effacer.
En fait, les expressions régulières sur Unicode ne sont pas très simples à utiliser.
Autres références :
Chaque jour, lorsque nous traitons des données, nous générons souvent des espaces supplémentaires. Si vous souhaitez comparer des chaînes, cela entraînera des problèmes ; cela gaspillera également de l'espace de stockage supplémentaire.
Comment supprimer les espaces ? Peut-être penserez-vous d’abord à la fonction intégrée trim() de PHP. Oui, il est effectivement efficace pour traiter le début et la fin des caractères, mais dans ce cas il ne peut pas le faire : transformer plusieurs espaces en un seul espace, transformer les espaces en une file d'attente ordonnée et régulière, etc...
Donc, c'est où les expressions régulières sont utiles. Jetez un œil au code ci-dessous :
$str = ” This line contains\tliberal \r\n use of whitespace.\n\n”; // 首先去掉头尾空格 $str = trim($str); // 接着去掉两个空格以上的 $str = preg_replace(’/\s(?=\s)/’, '', $str); // 最后将非空格替换为一个空格 $str = preg_replace(’/[\n\r\t]/’, ' ', $str);
Utilisez l'exemple ci-dessus pour supprimer tous les espaces supplémentaires. Utilisez d'abord TRim() pour supprimer les espaces de début et de fin, puis utilisez preg_replace() pour supprimer les espaces répétés.
Le (?=) signifie que seuls l'espace suivant et l'espace précédent correspondent.
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!