Maison >développement back-end >Problème PHP >Comment exclure les caractères chinois en php (trois méthodes)

Comment exclure les caractères chinois en php (trois méthodes)

PHPz
PHPzoriginal
2023-04-04 10:44:491360parcourir

Les caractères chinois sont un problème courant lors du développement de sites Web. En PHP, les fonctions de traitement de texte, telles que preg_replace, str_replace, etc., peuvent traiter normalement les caractères chinois. Cependant, dans certains scénarios spécifiques, nous devons exclure les caractères chinois. Par exemple, si un champ de nom d'utilisateur ne peut contenir que des lettres et des chiffres anglais, nous devons exclure les caractères chinois.

Cet article présentera plusieurs méthodes pour exclure les caractères chinois en PHP pour référence des lecteurs.

Méthode 1 : Utiliser des expressions régulières

L'utilisation d'expressions régulières peut plus facilement exclure les caractères chinois. Voici un exemple de code :

function excludeChinese($str) {

    return preg_replace("/[\x7f-\xff]+/", '', $str);

}

$name = "张三";
$name = excludeChinese($name);
echo $name; //输出为空

Dans le code ci-dessus, la fonction preg_replace est utilisée pour remplacer les caractères chinois de la chaîne par une chaîne vide afin d'exclure les caractères chinois. [x7f-xff] signifie faire correspondre tous les caractères chinois dans la table de codes ASCII.

Étant donné que l'encodage des caractères chinois n'est pas unique, cette méthode n'est pas parfaite. Dans certains cas, d'autres méthodes d'exclusion des caractères chinois peuvent être nécessaires.

Méthode 2 : utilisez la fonction mb_check_encoding

Utilisez la fonction mb_check_encoding pour exclure les caractères chinois. Voici un exemple de code :

function excludeChinese($str) {

    $len = mb_strlen($str);
    for ($i=0; $i<$len; $i++) {
        $char = mb_substr($str, $i, 1);
        if (!mb_check_encoding($char, 'ASCII')) {
            return '';
        }
    }
    return $str;
}

$name = "张三";
$name = excludeChinese($name);
echo $name; //输出为空

Le code ci-dessus utilise la fonction mb_check_encoding pour détecter si chaque caractère de la chaîne est un caractère ASCII. Sinon, il renvoie une chaîne vide pour exclure les caractères chinois.

Méthode 3 : Utilisez la fonction iconv

Une autre façon d'exclure les caractères chinois est d'utiliser la fonction iconv. Voici un exemple de code :

function excludeChinese($str) {

    $str = iconv("UTF-8", "ASCII//IGNORE", $str);
    return $str;
}

$name = "张三";
$name = excludeChinese($name);
echo $name; //输出空字符串

Dans le code ci-dessus, l'encodage de la chaîne est d'abord converti de l'encodage UTF-8 en ASCII, puis les caractères chinois sont ignorés via le paramètre IGNORE et enfin la chaîne de résultat est renvoyée.

Conclusion

Les méthodes ci-dessus peuvent toutes parvenir à l'exclusion des caractères chinois. La méthode spécifique peut être sélectionnée en fonction des besoins. Bien entendu, différentes méthodes peuvent être nécessaires selon les scénarios. Dans le cadre du développement réel, il est préférable de faire un choix en fonction de conditions d'application spécifiques.

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!

Déclaration:
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