Position actuelle: Accueil> Derniers articles> Explication détaillée des méthodes et techniques correctes pour intercepter les cordes chinoises par PHP

Explication détaillée des méthodes et techniques correctes pour intercepter les cordes chinoises par PHP

gitbox 2025-07-28

Méthodes courantes pour intercepter les cordes chinoises en PHP

En tant que langue populaire côté serveur, PHP nécessite souvent d'intercepter les chaînes. Parce que les caractères chinois occupent plusieurs octets, les fonctions interceptrices de cordes ordinaires ne peuvent pas traiter avec précision chinois. Cet article partagera plusieurs méthodes pratiques pour intercepter les cordes chinoises pour vous aider à résoudre facilement ce problème.

Utilisez la fonction mb_substr () pour intercepter la chaîne chinoise

La fonction MB_substr () intégrée de PHP est conçue pour les caractères multi-octets et peut intercepter avec précision les cordes chinoises. Il intercepte en fonction du nombre de caractères, et non d'un simple nombre d'octets.

Exemple d'utilisation de la fonction:

 <span class="fun">MB_SUBSTR (String $ Str, int $ start, int $ Longue</span>

Description du paramètre:

  • $ str : La chaîne à intercepter.
  • $ start : la position de départ, basée sur l'indice de caractères, 0 est le point de départ.
  • $ Longueur : intercepte la longueur.
  • $ charse : codage des caractères, par défaut UTF-8.

Exemple de code:

 $str = "PHPIntercepter les cordes chinoises";
$substr = mb_substr($str, 0, 6);
echo $substr;  // Sortir:"PHPIntercepté"

Intercepter les caractères chinois à travers des expressions régulières

En plus des fonctions intégrées, des expressions régulières peuvent également être utilisées pour combiner preg_match () pour réaliser des caractères chinois interceptant. Les expressions régulières peuvent correspondre aux caractères chinois Unicode dans une plage spécifiée.

Exemple de code:

 $str = "PHPIntercepter les cordes chinoises";
preg_match('/^([\x{4e00}-\x{9fa5}]+)/u', $str, $matches);
echo $matches[1];  // Sortir:"PHP"

Les fonctions personnalisées implémentent l'interception de chaîne chinoise

Si une logique d'interception plus flexible est nécessaire, vous pouvez personnaliser les fonctions et combiner mb_strlen () et mb_substr () pour réaliser l'effet d'interception avec ellipsis.

 function substr_cn($str, $length) {
    $len = mb_strlen($str, 'UTF-8');
    if ($len > $length) {
        $str = mb_substr($str, 0, $length, 'UTF-8') . '...';
    }
    return $str;
}

$str = "PHPIntercepter les cordes chinoises";
$substr = substr_cn($str, 6);
echo $substr;  // Sortir:"PHPIntercepté..."

Choses à noter

Lorsque vous utilisez les méthodes ci-dessus, vous devez faire attention aux points suivants:

  • Assurez-vous que l'encodage du caractère est correct. Le codage par défaut peut être défini via mb_internal_encoding ('utf-8'); pour éviter les erreurs d'interception causées par un codage incohérent.
  • La caractéristique multi-octet des caractères chinois évite les fonctions à un octet telles que strlen () . Il est recommandé d'utiliser mb_strlen () pour calculer la longueur de la chaîne.
  • Lorsque vous interceptez, assurez-vous que la position de départ et la longueur sont basées sur des caractères plutôt que des octets, afin de ne pas tronquer les caractères et provoquer du code brouillé.

Résumer

Intercepter les cordes chinoises est une exigence commune et critique dans le développement de PHP. Grâce à la fonction MB_substr () intégrée, à la correspondance d'expression régulière et aux fonctions personnalisées, l'interception des chaînes chinoises peut être flexible et efficace. La gestion correcte de l'encodage et de la longueur des caractères est la clé pour assurer les résultats d'interception précis. J'espère que la méthode de cet article pourra fournir une référence pratique pour le développement de votre projet.