真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )_php技巧
/*
* 功能: 作用跟substr一样,除了它不会造成乱码
* 参数:
* 返回:
*/
function utf8_substr( $str , $start , $length=null ){
// 先正常截取一遍.
$res = substr( $str , $start , $length );
$strlen = strlen( $str );
/* 接着判断头尾各6字节是否完整(不残缺) */
// 如果参数start是正数
if ( $start >= 0 ){
// 往前再截取大约6字节
$next_start = $start + $length; // 初始位置
$next_len = $next_start + 6 $next_segm = substr( $str , $next_start , $next_len );
// 如果第1字节就不是 完整字符的首字节, 再往后截取大约6字节
$prev_start = $start - 6 > 0 ? $start - 6 : 0;
$prev_segm = substr( $str , $prev_start , $start - $prev_start );
}
// start是负数
else{
// 往前再截取大约6字节
$next_start = $strlen + $start + $length; // 初始位置
$next_len = $next_start + 6 $next_segm = substr( $str , $next_start , $next_len );
// 如果第1字节就不是 完整字符的首字节, 再往后截取大约6字节.
$start = $strlen + $start;
$prev_start = $start - 6 > 0 ? $start - 6 : 0;
$prev_segm = substr( $str , $prev_start , $start - $prev_start );
}
// 判断前6字节是否符合utf8规则
if ( preg_match( '@^([\x80-\xBF]{0,5})[\xC0-\xFD]?@' , $next_segm , $bytes ) ){
if ( !empty( $bytes[1] ) ){
$bytes = $bytes[1];
$res .= $bytes;
}
}
// 判断后6字节是否符合utf8规则
$ord0 = ord( $res[0] );
if ( 128 = $ord0 ){
// 往后截取 , 并加在res的前面.
if ( preg_match( '@[\xC0-\xFD][\x80-\xBF]{0,5}$@' , $prev_segm , $bytes ) ){
if ( !empty( $bytes[0] ) ){
$bytes = $bytes[0];
$res = $bytes . $res;
}
}
}
return $res;
}
测试数据::
$str = 'dfjdjf测13f试65&2数据fdj(1就mfe&……就';
var_dump( utf8_substr( $str , 22 , 12 ) ); echo '
';
var_dump( utf8_substr( $str , 22 , -6 ) ); echo '
';
var_dump( utf8_substr( $str , 9 , 12 ) ); echo '
';
var_dump( utf8_substr( $str , 19 , 12 ) ); echo '
';
var_dump( utf8_substr( $str , 28 , -6 ) ); echo '
';
显示结果::(截取无乱码, 欢迎大家测试, 提交bug)
string(12) "据fdj"
string(26) "据fdj(1就mfe&…"
string(13) "13f试65&2数"
string(12) "数据fd"
string(20) "dj(1就mfe&…"

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



UTF8-kodierte chinesische Zeichen belegen 3 Bytes. Bei der UTF-8-Kodierung entspricht ein chinesisches Zeichen drei Bytes und ein chinesisches Satzzeichen belegt drei Bytes, während bei der Unicode-Kodierung ein chinesisches Zeichen (einschließlich traditionellem Chinesisch) zwei Bytes entspricht. UTF-8 benötigt zur Kodierung jedes Zeichens nur 1 Byte. Für Latein, Griechisch, Kyrillisch und Hebräisch sind 2 Byte erforderlich Codierung.

Die Go-Sprache ist eine leistungsstarke und flexible Programmiersprache, die umfangreiche Funktionen zur Zeichenfolgenverarbeitung bietet, einschließlich des Abfangens von Zeichenfolgen. In der Go-Sprache können wir Slices verwenden, um Zeichenfolgen abzufangen. Als Nächstes stellen wir anhand spezifischer Codebeispiele ausführlich vor, wie Zeichenfolgen in der Go-Sprache abgefangen werden. 1. Verwenden Sie Slicing, um eine Zeichenfolge abzufangen. In der Go-Sprache können Sie Slicing-Ausdrücke verwenden, um einen Teil einer Zeichenfolge abzufangen. Die Syntax des Slice-Ausdrucks lautet wie folgt: Slice:=str[Start:End]wo, s

Abfangmethode: 1. Ein einzelnes Zeichen abfangen, die Syntax „string[index]“, wobei „string“ die Quellzeichenfolge und „index“ den zu erhaltenden Zeichenindex darstellt. 2. Einen Teilstring abfangen, die Syntax „string“. [Start: Ende]“, wobei „Start“ den Index des ersten abzufangenden Zeichens darstellt (einschließlich dieses Zeichens beim Abfangen), „Ende“ den Index des letzten abzufangenden Zeichens darstellt (ohne dieses Zeichen 3); . Holen Sie sich den gesamten String, Syntax „string[:]“.

So verwenden Sie die LEFT-Funktion in MySQL, um den linken Teil einer Zeichenfolge abzufangen. In Datenbankverwaltungssystemen stoßen wir häufig auf Situationen, in denen wir einen bestimmten Teil einer Zeichenfolge abfangen müssen. MySQL bietet viele integrierte String-Funktionen, einschließlich der LEFT-Funktion, mit der der linke Teil eines Strings abgefangen werden kann. Die Syntax der LEFT-Funktion lautet wie folgt: LEFT (str, Länge), wobei str die abzufangende Zeichenfolge und Länge die abzufangende Länge ist. Als nächstes werden wir anhand von Codebeispielen demonstrieren, wie das geht

Lösung für verstümmelte chinesische Zeichen im Knoten utf8: 1. Überprüfen Sie den Typ von „SarchName“ über „typeof“. 2. Verwenden Sie „Name=iconv.decode(name,‘gbk‘)“, um die Codierung in utf8 zu konvertieren.

Die Funktion substr() in PHP: Das Abfangen eines Teils einer Zeichenfolge erfordert bestimmte Codebeispiele. In der PHP-Programmierung ist die Verarbeitung von Zeichenfolgen eine der häufigsten Operationen. Das Abfangen eines Teils einer Zeichenfolge ist eine Anforderung, die bei der Verarbeitung von Zeichenfolgen häufig auftritt. In PHP können wir die integrierte Funktion substr() verwenden, um einen Teil eines Strings abzufangen. In diesem Artikel wird die Verwendung der Funktion substr() ausführlich vorgestellt und spezifische Codebeispiele gegeben. Die grundlegende Verwendung der Funktion substr() ist wie folgt: string

Verwenden Sie die LEFT-Funktion von MySQL, um die angegebene Länge einer Zeichenfolge abzufangen. In MySQL müssen wir häufig Zeichenfolgen abfangen, um bestimmte Anforderungen zu erfüllen. Unter diesen ist die LEFT-Funktion eine sehr praktische Funktion, die die angegebene Länge einer Zeichenfolge abfangen kann. In diesem Artikel wird die Verwendung der LEFT-Funktion von MySQL zum Abfangen von Zeichenfolgen vorgestellt und Codebeispiele gegeben. Zuerst müssen wir die Syntax der LEFT-Funktion verstehen. Die grundlegende Syntax der LEFT-Funktion lautet wie folgt: LEFT(string,lengt

So verwenden Sie die RIGHT-Funktion in MySQL, um den rechten Teil einer Zeichenfolge abzufangen. In MySQL ist die RIGHT-Funktion eine Funktion, die zum Abfangen des rechten Teils einer Zeichenfolge verwendet wird. Es akzeptiert zwei Parameter: die abzufangende Zeichenfolge und die abzufangende Länge und gibt eine Zeichenfolge mit der angegebenen Länge zurück. Verwenden Sie die RIGHT-Funktion, um ganz bequem den richtigen Teil einer Zeichenfolge zu erhalten. Im Folgenden zeigen wir anhand von Codebeispielen, wie die RIGHT-Funktion verwendet wird. Zuerst müssen wir eine Beispieldatentabelle erstellen, um die abzufangenden Zeichenfolgen zu speichern. CR
