php中截取中文字符串的代码小结_PHP
字符串截取是一个非常常见的编程任务,而往往带中文的字符串截取会经常用到。虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了。
1. 截取GB2312中文字符串
复制代码 代码如下:
//截取中文字符串
function mysubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
?>
2. 截取utf8编码的多字节字符串
复制代码 代码如下:
//截取utf8字符串
function utf8Substr($str, $from, $len)
{
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?>
3. UTF-8、GB2312都支持的汉字截取函数
复制代码 代码如下:
/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/
function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa = "/[\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]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i{
if($i>=$start && $i{
if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)return $tmpstr;
}
}
$str = "abcd需要截取的字符串";
echo cut_str($str, 8, 0, 'gb2312');
?>
4. BugFree 的字符截取函数
复制代码 代码如下:
/**
* @package BugFree
* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
*
*
* Return part of a string(Enhance the function substr())
*
* @author Chunsheng Wang
* @param string $String the string to cut.
* @param int $Length the length of returned string.
* @param booble $Append whether append "...": false|true
* @return string the cutted string.
*/
function sysSubStr($String,$Length,$Append = false)
{
if (strlen($String) {
return $String;
}
else
{
$I = 0;
while ($I {
$StringTMP = substr($String,$I,1);
if ( ord($StringTMP) >=224 )
{
$StringTMP = substr($String,$I,3);
$I = $I + 3;
}
elseif( ord($StringTMP) >=192 )
{
$StringTMP = substr($String,$I,2);
$I = $I + 2;
}
else
{
$I = $I + 1;
}
$StringLast[] = $StringTMP;
}
$StringLast = implode("",$StringLast);
if($Append)
{
$StringLast .= "...";
}
return $StringLast;
}
}
$String = "17test.info 走在中国自动化测试的前沿";
$Length = "18";
$Append = false;
echo sysSubStr($String,$Length,$Append);
?>

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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



Detaillierte Erläuterung der String-Abfangmethoden in der Go-Sprache. In der Go-Sprache sind Strings unveränderliche Bytesequenzen, daher müssen einige Methoden verwendet werden, um das String-Abfangen zu implementieren. Das Abfangen von Zeichenfolgen ist eine übliche Operation zum Abrufen eines bestimmten Teils einer Zeichenfolge. Sie können je nach Bedarf die ersten paar Zeichen, die letzten paar Zeichen der Zeichenfolge oder eine bestimmte Länge von Zeichen abfangen. In diesem Artikel wird detailliert beschrieben, wie Zeichenfolgen in der Go-Sprache abgefangen werden, und es werden spezifische Codebeispiele bereitgestellt. Verwenden von Slicing zum Implementieren des Abfangens von Zeichenfolgen. In der Go-Sprache können Sie Slicing verwenden, um

So verwenden Sie die ROUND-Funktion in MySQL, um die Anzahl der Dezimalstellen abzufangen. In MySQL können Sie die ROUND-Funktion verwenden, um die Anzahl der Dezimalstellen abzufangen. Die ROUND-Funktion rundet eine Zahl auf eine angegebene Anzahl von Dezimalstellen. Im Folgenden werden Sie ausführlich in die Verwendung der ROUND-Funktion eingeführt und Codebeispiele bereitgestellt. Syntax: ROUND(X,D)X steht für die zu rundende Zahl und D für die Anzahl der beizubehaltenden Dezimalstellen. Beispiel für die Verwendung der ROUND-Funktion zum Abfangen der Anzahl der Dezimalstellen: Angenommen, es gibt eine Tabelle mit dem Namen produc

Bei der PHP-Entwicklung stoßen wir häufig auf Situationen, in denen chinesische Zeichenfolgen abgefangen werden müssen. Traditionell verwenden wir normalerweise die Funktion mb_substr(), um das Abfangen chinesischer Zeichen zu handhaben, aber ihre Leistung ist schlecht und nicht gut lesbar. In diesem Artikel werden einige neue Techniken zum Abfangen chinesischer Zeichenfolgen vorgestellt, wir verabschieden uns von mb_substr () und verbessern die Effizienz und Lesbarkeit des Codes. Die Verwendung regulärer Ausdrücke zum Abfangen chinesischer Zeichenfolgen ist eine effiziente und übersichtliche Methode zum Abfangen chinesischer Zeichenfolgen mithilfe regulärer Ausdrücke. Wir können chinesische Schriftzeichen mithilfe regulärer Ausdrücke zuordnen

Beherrschen Sie schnell die String-Interception-Funktion in der Go-Sprache. Die Go-Sprache hat in den letzten Jahren viel Aufmerksamkeit erregt. Sie zeichnet sich durch Einfachheit und Effizienz aus und wird von immer mehr Entwicklern bevorzugt. In der Go-Sprache ist die Zeichenfolgenverarbeitung eine sehr häufige Operation, und die Funktion zum Abfangen von Zeichenfolgen ist ein wichtiger Bestandteil davon. In diesem Artikel werden spezifische Codebeispiele verwendet, um Ihnen dabei zu helfen, die String-Interception-Funktion in der Go-Sprache schnell zu beherrschen. 1. Grundlegendes Abfangen von Zeichenfolgen in der Go-Sprache. Das Codebeispiel lautet wie folgt: Paket

UniApp ist ein plattformübergreifendes Anwendungsentwicklungs-Framework auf Basis von Vue.js, mit dem schnell Anwendungen für iOS- und Android-Plattformen entwickelt werden können. In UniApp ist das Hochladen und Zuschneiden von Bildern eine häufige Anforderung. In diesem Artikel wird erläutert, wie das Hochladen und Zuschneiden von Bildern in UniApp implementiert wird, und es werden entsprechende Codebeispiele bereitgestellt. 1. So implementieren Sie das Hochladen von Bildern: Verwenden Sie die Methode uni.uploadFile(), um Bilder hochzuladen. Zuerst müssen Sie uni.uploa konfigurieren

So optimieren Sie die Leistung des Abfangens und Spleißens von Zeichenfolgen in der Java-Entwicklung. In der täglichen Java-Entwicklung sind das Abfangen und Spleißen von Zeichenfolgen sehr häufige Vorgänge. Aufgrund der Unveränderlichkeit von Zeichenfolgen in Java können jedoch häufige String-Abfang- und Spleißvorgänge zu Leistungseinbußen führen. Um die Leistung beim Abfangen und Spleißen von Zeichenfolgen in der Java-Entwicklung zu verbessern, können wir die folgenden Optimierungsstrategien anwenden. Verkettung mit StringBuilder oder StringBuffer: In Java String

Als leistungsstarke Programmiersprache bietet die Go-Sprache eine Fülle von Methoden und Funktionen für String-Operationen und -Verarbeitung. Unter diesen ist das Abfangen von Zeichenfolgen eine der Funktionen, die wir häufig verwenden. In diesem Artikel werden wir uns mit dem Implementierungsprinzip des String-Abfangens in der Go-Sprache befassen und den Implementierungsprozess anhand spezifischer Codebeispiele demonstrieren. Was ist String-Interception? In der Go-Sprache bezieht sich das Abfangen von Zeichenfolgen auf den Vorgang des Abfangens teilweiser Teilzeichenfolgen aus einer Zeichenfolge. Durch Angabe der Start- und Endposition können wir den angegebenen Bereich in der Originalzeichenfolge erhalten

Als weit verbreitete Programmiersprache wurde Java kontinuierlich weiterentwickelt und aktualisiert. Jede neue Version wird einige neue Features und Funktionen einführen, um die Codierungseffizienz der Entwickler zu verbessern. Eines der Features von Java12 als neuester Version ist die Einführung der neuen StringAPI, die das Abfangen und Verketten von Strings bequemer und effizienter macht. In früheren Versionen mussten String-Abfang- und Verkettungsoperationen durch den Aufruf von substring() und dem „+“-Operator implementiert werden, diese Methoden waren jedoch nicht in der Lage, eine große Anzahl von String-Operationen zu verarbeiten.
