Home Backend Development PHP Tutorial php中截取中文字符串的代码小结_PHP

php中截取中文字符串的代码小结_PHP

Jun 01, 2016 pm 12:14 PM
intercept

字符串截取是一个非常常见的编程任务,而往往带中文的字符串截取会经常用到。虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了。

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

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Detailed explanation of string interception method in Go language Detailed explanation of string interception method in Go language Mar 13, 2024 am 08:03 AM

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 ROUND function to intercept decimal places in MySQL How to use ROUND function to intercept decimal places in MySQL Jul 13, 2023 pm 09:21 PM

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

PHP Chinese string interception skills: Say goodbye to mb_substr() PHP Chinese string interception skills: Say goodbye to mb_substr() Mar 15, 2024 pm 12:18 PM

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 Quickly master the string interception function in Go language Mar 12, 2024 pm 06:15 PM

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

How UniApp implements image uploading and cropping How UniApp implements image uploading and cropping Jul 06, 2023 am 10:01 AM

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 string interception and splicing performance in Java development How to optimize string interception and splicing performance in Java development Jun 29, 2023 pm 06:04 PM

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

In-depth understanding of the implementation principle of string interception in Go language In-depth understanding of the implementation principle of string interception in Go language Mar 12, 2024 pm 06:27 PM

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

New features in Java 12: How to use the new String API to intercept and concatenate strings New features in Java 12: How to use the new String API to intercept and concatenate strings Jul 31, 2023 pm 12:55 PM

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.

See all articles