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

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Detailed explanation of string interception methods in Go language. In Go language, strings are immutable byte sequences, so some methods need to be used to implement string interception. String interception is a common operation to obtain a specific part of a string. You can intercept the first few characters, the last few characters of the string, or a certain length of characters from a specific position according to your needs. This article will introduce in detail how to intercept strings in Go language and provide specific code examples. Using slicing to implement string interception In Go language, you can use slicing to

How to use the ROUND function in MySQL to intercept the number of decimal places. In MySQL, you can use the ROUND function to intercept the number of decimal places. The ROUND function rounds a number to a specified number of decimal places. The following will introduce you to the use of ROUND function in detail and provide code examples. Syntax: ROUND(X,D)X represents the number to be rounded, and D represents the number of decimal places to be retained. Example of using the ROUND function to intercept the number of decimal places: Suppose there is a table named produc

In PHP development, we often encounter situations where Chinese strings need to be intercepted. Traditionally, we usually use the mb_substr() function to handle the interception of Chinese characters, but its performance is poor and not readable enough. This article will introduce some new Chinese string interception techniques, let us say goodbye to mb_substr(), and improve code efficiency and readability. Use regular expressions to intercept Chinese strings. Using regular expressions to intercept Chinese strings is an efficient and concise method. We can match Chinese characters through regular expressions

Quickly master the string interception function in Go language. Go language is a programming language that has attracted much attention in recent years. It has the characteristics of simplicity and efficiency, and is favored by more and more developers. In the Go language, string processing is a very common operation, and the string interception function is an important part of it. This article will use specific code examples to help you quickly master the string interception function in Go language. 1. Basic string interception. Strings in Go language can be intercepted through index. The code example is as follows: package

UniApp is a cross-platform application development framework based on Vue.js, which can quickly develop applications for both iOS and Android platforms. In UniApp, uploading and cropping images is a common requirement. This article will introduce how to implement image uploading and cropping in UniApp, and provide corresponding code examples. 1. How to implement image upload: Use the uni.uploadFile() method to upload images. First, you need to configure uni.uploa

How to optimize the performance of string interception and splicing in Java development. In daily Java development, string interception and splicing are very common operations. However, due to the immutable nature of strings in Java, frequent string interception and splicing operations may cause performance degradation. In order to improve the performance of string interception and splicing in Java development, we can adopt the following optimization strategies. Concatenation using StringBuilder or StringBuffer: In Java, String

As a high-performance programming language, Go language provides a wealth of methods and functions for string operations and processing. Among them, string interception operation is one of the functions we often use. In this article, we will delve into the implementation principle of string interception in Go language and demonstrate the implementation process through specific code examples. What is string interception? In Go language, string interception refers to the operation of intercepting partial substrings from a string. By specifying the starting position and ending position, we can obtain the specified range in the original string

As a widely used programming language, Java has been continuously developed and updated. Each new version will introduce some new features and functions to improve developers' coding efficiency. One of the features of Java12 as the latest version is the introduction of the new StringAPI, which makes string interception and concatenation more convenient and efficient. In previous versions, string interception and concatenation operations needed to be implemented by calling substring() and the "+" operator, but these methods were unable to handle a large number of string operations.
