Maison > développement back-end > Problème PHP > PHP implémente l'interception de chaînes chinoises sans caractères tronqués

PHP implémente l'interception de chaînes chinoises sans caractères tronqués

(*-*)浩
Libérer: 2023-02-25 08:26:02
original
3506 Les gens l'ont consulté

PHP implémente l'interception de chaînes chinoises sans caractères tronqués

Substr est souvent utilisé pour intercepter des chaînes en PHP, mais lorsque nous l'utilisons pour intercepter des caractères chinois, des caractères tronqués apparaîtront , par exemple : (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)

<?php
$mystring="今天天气真好";
$mysubstring=substr($mystring,0,2);
echo $mysubstring;
?>
Copier après la connexion

Le résultat de sortie est �;

Analyse des causes : fonction substr Le prototype est : string substr ( string $string, int $start [, int $length]), où $length représente la longueur en octets renvoyée et un caractère chinois occupe deux octets. Pour un caractère chinois UTF-8, ce sera Il est traité comme 3 octets.

<?php
$length=strlen($mystring);echo $length;//输出结果为18
?>
Copier après la connexion

C'est-à-dire que nous pouvons définir $length sur 3, ce qui renverra avec succès le mot "Jin". Dans ce cas, si le chinois et l’anglais sont mélangés, nous devons calculer soigneusement $length.

Alors, y a-t-il une meilleure solution ?

Php donne des fonctions supplémentaires mb_strlen et mb_substr

<?php
$length=mb_strlen($mystring);
$mysub=mb_substr($mystring,0,4);
echo "the length is:$length,","the substr is:$mysub";
?>
Copier après la connexion

Le résultat de sortie est : la longueur est : 6, le substr est : La météo du jour

Le le prototype de la fonction mb_strlen est int mb_strlen(string string_input, string encode) ; le codage par défaut est UTF-8, qui comptera les caractères chinois codés pour UTF-8 comme un seul

Remarque : mb_strlen et mb_substr ne sont pas des fonctions principales de PHP. Vous devez ouvrir extension=php_mbstring.dll dans php.ini avant de les utiliser

.

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!

Étiquettes associées:
php
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal