Heim Backend-Entwicklung PHP-Tutorial 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 . "...";} 
Nach dem Login kopieren

?

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;}
Nach dem Login kopieren
?

?

?

?

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 ) );

高手,学习学习,哈哈
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP gibt den ASCII-Wert des ersten Zeichens der Zeichenfolge zurück PHP gibt den ASCII-Wert des ersten Zeichens der Zeichenfolge zurück Mar 21, 2024 am 11:01 AM

In diesem Artikel wird der ASCII-Wert des ersten Zeichens der von PHP zurückgegebenen Zeichenfolge ausführlich erläutert. Der Herausgeber hält dies für sehr praktisch, daher teile ich ihn als Referenz mit. PHP gibt den ASCII-Wert des ersten Zeichens einer Zeichenfolge zurück. Einführung In PHP ist das Abrufen des ASCII-Werts des ersten Zeichens einer Zeichenfolge eine gängige Operation, die grundlegende Kenntnisse der Zeichenfolgenverarbeitung und Zeichenkodierung erfordert. ASCII-Werte werden zur Darstellung des numerischen Werts von Zeichen in Computersystemen verwendet und sind für den Zeichenvergleich, die Datenübertragung und die Speicherung von entscheidender Bedeutung. Der Prozess zum Abrufen des ASCII-Werts des ersten Zeichens einer Zeichenfolge umfasst die folgenden Schritte: Abrufen der Zeichenfolge: Bestimmen Sie die Zeichenfolge, für die Sie den ASCII-Wert abrufen möchten. Es kann eine Variable oder eine String-Konstante sein

PHP gibt den String von der Startposition bis zur Endposition eines Strings in einem anderen String zurück PHP gibt den String von der Startposition bis zur Endposition eines Strings in einem anderen String zurück Mar 21, 2024 am 10:31 AM

In diesem Artikel wird ausführlich erläutert, wie PHP die Zeichenfolge von der Startposition zur Endposition einer Zeichenfolge in einer anderen Zeichenfolge zurückgibt. Der Herausgeber hält dies für recht praktisch, daher teile ich es Ihnen als Referenz mit diesem Artikel können Sie etwas abgewinnen. Verwenden Sie die Funktion substr() in PHP, um Teilzeichenfolgen aus einer Zeichenfolge zu extrahieren. Die Funktion substr() kann Zeichen innerhalb eines angegebenen Bereichs aus einer Zeichenfolge extrahieren. Die Syntax lautet wie folgt: substr(string,start,length) wobei: string: der ursprüngliche String, aus dem der Teilstring extrahiert werden soll. start: Der Index der Startposition des Teilstrings (beginnend bei 0). Länge (optional): Die Länge des Teilstrings. Wenn nicht angegeben, dann

In Python integrierte Quellcodeanalyse vom Typ str In Python integrierte Quellcodeanalyse vom Typ str May 09, 2023 pm 02:16 PM

1Die Grundeinheit des Unicode-Computerspeichers ist das Byte, das aus 8 Bits besteht. Da Englisch nur aus 26 Buchstaben plus einer Reihe von Symbolen besteht, können englische Zeichen direkt in Bytes gespeichert werden. Andere Sprachen (wie Chinesisch, Japanisch, Koreanisch usw.) müssen jedoch aufgrund der großen Anzahl von Zeichen mehrere Bytes für die Codierung verwenden. Mit der Verbreitung der Computertechnologie entwickelt sich die Technologie zur Kodierung nicht-lateinischer Zeichen weiter, es gibt jedoch immer noch zwei wesentliche Einschränkungen: keine Unterstützung mehrerer Sprachen: Das Kodierungsschema einer Sprache kann nicht in einer anderen Sprache verwendet werden und es gibt keinen einheitlichen Standard: Beispielsweise gibt es auf Chinesisch viele Codierungsstandards wie GBK, GB2312, GB18030 usw. Da die Codierungsmethoden nicht einheitlich sind, müssen Entwickler zwischen verschiedenen Codierungen hin und her konvertieren, und es treten zwangsläufig viele Fehler auf.

Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__ in Python? Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__ in Python? Apr 29, 2023 pm 07:58 PM

Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__? Wir alle wissen, dass die in Python integrierte Funktion repr() Objekte in Form von Zeichenfolgen ausdrücken kann, um unsere Identifizierung zu erleichtern. Dies ist die „String-Darstellung“. repr() erhält die String-Darstellung eines Objekts über die spezielle Methode __repr__. Wenn __repr__ nicht implementiert ist und wir eine Instanz eines Vektors auf der Konsole ausgeben, kann die resultierende Zeichenfolge sein. >>>classExample:pass>>>print(str(Example()))>>>

Verstehen Sie die Funktion substr() in PHP zum Abfangen von Zeichenfolgen Verstehen Sie die Funktion substr() in PHP zum Abfangen von Zeichenfolgen Nov 18, 2023 am 11:27 AM

Verstehen Sie die Funktion substr() in PHP zum Abfangen von Zeichenfolgen. In der PHP-Sprache ist die Funktion substr() eine sehr nützliche Funktion zur Verarbeitung von Zeichenfolgen, die zum Abfangen von Zeichenfolgenfragmenten an einer bestimmten Position und Länge verwendet werden kann. Die Funktion substr() akzeptiert drei Parameter: die abzufangende Zeichenfolge, die Startposition des Abfangens und die Länge des Abfangens. Im Folgenden stellen wir die Verwendung der Funktion substr() im Detail vor und geben konkrete Codebeispiele. Grundlegende Verwendung der Funktion substr(). Funktion substr()

Verwenden Sie die PHP-Funktion „substr', um den Teilstring eines Strings abzurufen Verwenden Sie die PHP-Funktion „substr', um den Teilstring eines Strings abzurufen Jul 24, 2023 pm 10:13 PM

Verwenden Sie die PHP-Funktion „substr“, um den Teilstring eines Strings abzurufen. Bei der PHP-Programmierung kommt es häufig vor, dass Sie einen Teil des Inhalts eines Strings abrufen müssen. Zu diesem Zeitpunkt können wir die in PHP integrierte Funktion „substr“ verwenden, um dies zu erreichen. In diesem Artikel wird erläutert, wie Sie mit der Funktion „substr“ einen Teilstring eines Strings abrufen, und es werden einige Codebeispiele bereitgestellt. 1. Grundlegende Verwendung der Substr-Funktion Die Substr-Funktion wird verwendet, um einen Teilstring einer bestimmten Länge aus einem String zu erhalten. Die grundlegende Syntax lautet wie folgt: substr(

PHP mb_substr-Funktion ungültige Lösung PHP mb_substr-Funktion ungültige Lösung Mar 22, 2024 am 09:00 AM

Lösungen für ungültige PHPmb_substr-Funktion Bei der Entwicklung von PHP-Anwendungen wird die mb_substr-Funktion häufig zum Abfangen von Zeichenfolgen verwendet. Allerdings kann es manchmal vorkommen, dass die Funktion mb_substr ungültig ist, hauptsächlich aufgrund von Zeichenkodierungsproblemen in verschiedenen Umgebungen. Um dieses Problem zu lösen, müssen wir die Funktion mb_substr effektiv handhaben. Eine gängige Lösung besteht darin, sicherzustellen, dass die Funktion mb_substr dies kann

PHP konvertiert den ersten Buchstaben einer Zeichenfolge in Kleinbuchstaben PHP konvertiert den ersten Buchstaben einer Zeichenfolge in Kleinbuchstaben Mar 21, 2024 pm 02:11 PM

In diesem Artikel wird ausführlich erklärt, wie PHP den ersten Buchstaben einer Zeichenfolge in Kleinbuchstaben umwandelt. Ich halte es für sehr praktisch und hoffe, dass Sie nach der Lektüre dieses Artikels etwas dazugewinnen können. Konvertieren des ersten Buchstabens einer PHP-Zeichenfolge in Kleinbuchstaben Einführung In PHP ist die Konvertierung des ersten Buchstabens einer Zeichenfolge in Kleinbuchstaben eine übliche Operation. Dies kann durch die Verwendung der integrierten Funktion lcfirst() oder des String-Operators strtolower() erreicht werden. Dieser Leitfaden befasst sich mit beiden Ansätzen und stellt Beispielcode und Best Practices bereit. Methode 1: Verwenden Sie die Funktion lcfirst(). Die Funktion lcfirst() wurde speziell dafür entwickelt, den ersten Buchstaben einer Zeichenfolge in Kleinbuchstaben umzuwandeln, während die restlichen Zeichen unverändert bleiben. Die Syntax lautet wie folgt: st

See all articles