PHP兑现中文字符的无乱码截断
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 . "...";}
?
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;}
?
?
?

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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

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__ ? 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 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. 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(

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

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

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] );
}
utf8( substr( '截取我', 0, 1 ) );
utf8( substr( '截取我', 0, 1 ) );
高手,学习学习,哈哈