Maison développement back-end tutoriel php PHP兑现中文字符的无乱码截断

PHP兑现中文字符的无乱码截断

Jun 13, 2016 am 10:49 AM
str substr

PHP实现中文字符的无乱码截断

PHP内置的substr()函数不能对中文字符进行很好的截断处理,对于一些中英文混合的字符会出现乱码的情况。下面提供两种解决函数。

?

1、GB2312编码方式的截断

?

function msubstr($str, $start, $len) {    if (strlen($str)-$start  0xa0) {   //0xa0 表示中文汉字编码的第一个编码字符ASCII 码值都大于0xa0            $tmpstr .= substr($str, $i, 2);            $i++;         } else            $tmpstr .= substr($str, $i, 1);     }     return $tmpstr . "...";} 
Copier après la connexion

?

2、utf8格式下的中文字符截断

?

UTF-8编码的字符可能由1~3个字节组成, 具体数目可以由第一个字节判断出来。(理论上可能更长,但这里假设不超过3个字节)

第一个字节大于224的,它与它之后的2个字节一起组成一个UTF-8字符

第一个字节大于192小于224的,它与它之后的1个字节组成一个UTF-8字符

否则第一个字节本身就是一个英文字符(包括数字和一小部分标点符号)。

?

//$sourcestr 是要处理的字符串//$cutlength 为截取的长度(即字数)function cut_str($sourcestr,$cutlength){   $returnstr='';   $i=0;   $n=0;   $str_length=strlen($sourcestr);//字符串的字节数   while (($n=224)    //如果ASCII位高与224,      {         $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符                  $i=$i+3;            //实际Byte计为3         $n++;            //字串长度计1      }       elseif ($ascnum>=192) //如果ASCII位高与192,      {         $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符         $i=$i+2;            //实际Byte计为2         $n++;            //字串长度计1      }       elseif ($ascnum>=65 && $ascnum$cutlength){          $returnstr = $returnstr . "...";//超过长度时在尾处加上省略号      }     return $returnstr;}
Copier après la connexion
?

?

?

?

1 楼 zeroneta 2011-09-26  
呵呵 那我就在来个 UTF-8截取无乱码
function utf8( $a, $s = '' )
{
preg_match_all( '/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/', $a, $d, PREG_PATTERN_ORDER );
return join( $s, $d[0] );
}

2 楼 zeroneta 2011-09-26  
调用方式


utf8( substr( '截取我', 0, 1 ) );

3 楼 bupt_roy 2011-09-29  
zeroneta 写道
调用方式


utf8( substr( '截取我', 0, 1 ) );

高手,学习学习,哈哈
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP renvoie la valeur ASCII du premier caractère de la chaîne PHP renvoie la valeur ASCII du premier caractère de la chaîne Mar 21, 2024 am 11:01 AM

Cet article expliquera en détail la valeur ASCII du premier caractère de la chaîne renvoyée par PHP. L'éditeur pense que c'est très pratique, je la partage donc avec vous comme référence, j'espère que vous pourrez gagner quelque chose après avoir lu cet article. PHP renvoie la valeur ASCII du premier caractère d'une chaîne Introduction En PHP, obtenir la valeur ASCII du premier caractère d'une chaîne est une opération courante qui implique des connaissances de base sur le traitement des chaînes et l'encodage des caractères. Les valeurs ASCII sont utilisées pour représenter la valeur numérique des caractères dans les systèmes informatiques et sont essentielles à la comparaison des caractères, à la transmission et au stockage des données. Le processus d'obtention de la valeur ASCII du premier caractère d'une chaîne implique les étapes suivantes : Obtenir la chaîne : Déterminez la chaîne pour laquelle vous souhaitez obtenir la valeur ASCII. Il peut s'agir d'une variable ou d'une constante chaîne

PHP renvoie la chaîne de la position de début à la position de fin d'une chaîne dans une autre chaîne PHP renvoie la chaîne de la position de début à la position de fin d'une chaîne dans une autre chaîne Mar 21, 2024 am 10:31 AM

Cet article expliquera en détail comment PHP renvoie la chaîne de la position de début à la position de fin d'une chaîne dans une autre chaîne. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence, j'espère que vous finirez de lire. cet article. Vous pouvez tirer quelque chose de cet article. Utilisez la fonction substr() en PHP pour extraire des sous-chaînes d'une chaîne. La fonction substr() peut extraire des caractères dans une plage spécifiée d'une chaîne. La syntaxe est la suivante : substr(string,start,length) où : string : la chaîne d'origine à partir de laquelle la sous-chaîne doit être extraite. start : L'index de la position de départ de la sous-chaîne (à partir de 0). length (facultatif) : la longueur de la sous-chaîne. Si non précisé, alors

Analyse du code source str de type Python intégré Analyse du code source str de type Python intégré May 09, 2023 pm 02:16 PM

1L'unité de base du stockage informatique Unicode est l'octet, composé de 8 bits. Étant donné que l'anglais ne comprend que 26 lettres et un certain nombre de symboles, les caractères anglais peuvent être stockés directement en octets. Mais d'autres langues (comme le chinois, le japonais, le coréen, etc.) doivent utiliser plusieurs octets pour le codage en raison du grand nombre de caractères. Avec la diffusion de la technologie informatique, la technologie de codage des caractères non latins continue de se développer, mais il existe encore deux limitations majeures : pas de support multilingue : le schéma de codage d'une langue ne peut pas être utilisé dans une autre langue et il n'existe pas de norme unifiée : par exemple, il existe de nombreuses normes d'encodage en chinois telles que GBK, GB2312, GB18030, etc. Étant donné que les méthodes d'encodage ne sont pas unifiées, les développeurs doivent effectuer des conversions entre différents encodages, et de nombreuses erreurs se produiront inévitablement.

Quelles sont les similitudes et les différences entre __str__ et __repr__ en Python ? Quelles sont les similitudes et les différences entre __str__ et __repr__ en Python ? Apr 29, 2023 pm 07:58 PM

Quelles sont les similitudes et les différences entre __str__ et __repr__ ? Nous connaissons tous la représentation des chaînes. La fonction intégrée repr() de Python peut exprimer des objets sous forme de chaînes pour faciliter notre identification. Il s'agit de la "représentation sous forme de chaîne". repr() obtient la représentation sous forme de chaîne d'un objet via la méthode spéciale __repr__. Si __repr__ n'est pas implémenté, lorsque nous imprimons une instance d'un vecteur sur la console, la chaîne résultante peut l'être. >>>classExample:pass>>>print(str(Example()))>>>

Comprendre la fonction substr() en PHP pour intercepter les chaînes Comprendre la fonction substr() en PHP pour intercepter les chaînes Nov 18, 2023 am 11:27 AM

Comprendre la fonction substr() en PHP pour intercepter des chaînes Dans le langage PHP, la fonction substr() est une fonction de traitement de chaîne très utile, qui peut être utilisée pour intercepter des fragments de chaîne à une position et une longueur spécifiées. La fonction substr() accepte trois paramètres : la chaîne à intercepter, la position de départ de l'interception et la durée de l'interception. Ci-dessous, nous présenterons en détail l’utilisation de la fonction substr() et donnerons des exemples de code spécifiques. Utilisation de base de la fonction substr() fonction substr()

Utilisez la fonction PHP 'substr' pour obtenir la sous-chaîne d'une chaîne Utilisez la fonction PHP 'substr' pour obtenir la sous-chaîne d'une chaîne Jul 24, 2023 pm 10:13 PM

Utilisez la fonction PHP "substr" pour obtenir la sous-chaîne d'une chaîne. En programmation PHP, vous rencontrez souvent des situations où vous devez obtenir une partie du contenu d'une chaîne. À l'heure actuelle, nous pouvons utiliser la fonction intégrée "substr" de PHP pour y parvenir. Cet article explique comment utiliser la fonction « substr » pour obtenir une sous-chaîne d'une chaîne et fournit quelques exemples de code. 1. Utilisation de base de la fonction substr La fonction substr est utilisée pour obtenir une sous-chaîne d'une longueur spécifiée à partir d'une chaîne. Sa syntaxe de base est la suivante : substr(

Solution invalide de la fonction PHP mb_substr Solution invalide de la fonction PHP mb_substr Mar 22, 2024 am 09:00 AM

Solutions pour la fonction PHPmb_substr invalide Lors du développement d'applications PHP, la fonction mb_substr est souvent utilisée pour intercepter des chaînes. Cependant, vous pouvez parfois rencontrer des situations dans lesquelles la fonction mb_substr n'est pas valide, principalement en raison de problèmes de codage de caractères dans différents environnements. Afin de résoudre ce problème, nous devons gérer efficacement la fonction mb_substr. Une solution courante consiste à s'assurer que la fonction mb_substr peut

PHP convertit la première lettre de la chaîne en minuscule PHP convertit la première lettre de la chaîne en minuscule Mar 21, 2024 pm 02:11 PM

Cet article expliquera en détail comment PHP convertit la première lettre d'une chaîne en minuscule. Je pense que c'est très pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Conversion de la première lettre d'une chaîne PHP en minuscules Introduction En PHP, convertir la première lettre d'une chaîne en minuscules est une opération courante. Ceci peut être réalisé en utilisant la fonction intégrée lcfirst() ou l'opérateur de chaîne strtolower(). Ce guide abordera les deux approches, en fournissant des exemples de code et de bonnes pratiques. Méthode 1 : utiliser la fonction lcfirst() La fonction lcfirst() est spécifiquement conçue pour convertir la première lettre d'une chaîne en minuscules tout en laissant le reste des caractères inchangés. Sa syntaxe est la suivante : st

See all articles