백엔드 개발 PHP 튜토리얼 php中截取中文字符串的代码小结_PHP

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

Jun 01, 2016 pm 12:14 PM
가로채기

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

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Go 언어의 문자열 가로채기 방법에 대한 자세한 설명 Go 언어의 문자열 가로채기 방법에 대한 자세한 설명 Mar 13, 2024 am 08:03 AM

Go 언어의 문자열 가로채기 방법에 대한 자세한 설명 Go 언어에서 문자열은 불변의 바이트 시퀀스이므로 문자열 가로채기를 구현하려면 몇 가지 방법을 사용해야 합니다. 문자열 가로채기는 문자열의 특정 부분을 얻기 위한 일반적인 작업입니다. 필요에 따라 문자열의 처음 몇 문자, 마지막 몇 문자 또는 특정 위치의 특정 길이의 문자를 가로챌 수 있습니다. 이 기사에서는 Go 언어에서 문자열을 가로채는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. 슬라이싱을 사용하여 문자열 가로채기 구현 Go 언어에서는 슬라이싱을 사용하여 다음을 수행할 수 있습니다.

ROUND 함수를 사용하여 MySQL에서 소수점 자리를 가로채는 방법 ROUND 함수를 사용하여 MySQL에서 소수점 자리를 가로채는 방법 Jul 13, 2023 pm 09:21 PM

MySQL에서 ROUND 함수를 사용하여 소수 자릿수를 가로채는 방법 MySQL에서는 ROUND 함수를 사용하여 소수 자릿수를 가로챌 수 있습니다. ROUND 함수는 숫자를 지정된 소수 자릿수로 반올림합니다. 다음에서는 ROUND 함수의 사용법을 자세히 소개하고 코드 예제를 제공합니다. 구문: ROUND(X,D)X는 반올림할 숫자를 나타내고, D는 유지할 소수 자릿수를 나타냅니다. ROUND 함수를 사용하여 소수 자릿수를 가로채는 예: produc이라는 테이블이 있다고 가정합니다.

PHP 중국어 문자열 차단 기술: mb_substr()에 작별 인사 PHP 중국어 문자열 차단 기술: mb_substr()에 작별 인사 Mar 15, 2024 pm 12:18 PM

PHP 개발 중에 중국어 문자열을 가로채야 하는 상황이 자주 발생합니다. 전통적으로 우리는 한자 가로채기를 처리하기 위해 일반적으로 mb_substr() 함수를 사용하지만 성능이 좋지 않고 가독성도 떨어집니다. 이 기사에서는 몇 가지 새로운 중국어 문자열 차단 기술을 소개하고 mb_substr()에 작별 인사를 하고 코드 효율성과 가독성을 향상시킵니다. 정규식을 사용하여 중국어 문자열을 가로채는 것은 정규식을 사용하여 중국어 문자열을 가로채는 효율적이고 간결한 방법입니다. 정규식을 통해 한자를 일치시킬 수 있습니다.

Go 언어의 문자열 가로채기 기능을 빠르게 마스터하세요 Go 언어의 문자열 가로채기 기능을 빠르게 마스터하세요 Mar 12, 2024 pm 06:15 PM

Go 언어의 문자열 가로채기 기능을 빠르게 익히십시오. Go 언어는 최근 몇 년간 많은 관심을 받고 있는 프로그래밍 언어로, 단순성과 효율성이라는 특징을 갖고 있어 점점 더 많은 개발자들이 선호하고 있습니다. Go 언어에서 문자열 처리는 매우 일반적인 작업이며 문자열 가로채기 기능은 중요한 부분입니다. 이 기사에서는 Go 언어의 문자열 가로채기 기능을 빠르게 익히는 데 도움이 되는 특정 코드 예제를 사용합니다. 1. Go 언어의 기본 문자열 차단은 코드 예시와 같습니다.

UniApp이 이미지 업로드 및 자르기를 구현하는 방법 UniApp이 이미지 업로드 및 자르기를 구현하는 방법 Jul 06, 2023 am 10:01 AM

UniApp은 Vue.js를 기반으로 하는 크로스 플랫폼 애플리케이션 개발 프레임워크로, iOS 및 Android 플랫폼용 애플리케이션을 빠르게 개발할 수 있습니다. UniApp에서는 이미지 업로드 및 자르기가 일반적인 요구 사항입니다. 이 기사에서는 UniApp에서 이미지 업로드 및 자르기를 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1. 이미지 업로드 구현 방법: uni.uploadFile() 메소드를 사용하여 이미지를 업로드합니다. 먼저 uni.uploa를 구성해야 합니다.

Java 개발에서 문자열 가로채기 및 접합 성능을 최적화하는 방법 Java 개발에서 문자열 가로채기 및 접합 성능을 최적화하는 방법 Jun 29, 2023 pm 06:04 PM

Java 개발에서 문자열 가로채기 및 연결 성능을 최적화하는 방법 일상적인 Java 개발에서 문자열 가로채기 및 연결은 매우 일반적인 작업입니다. 그러나 Java 문자열의 불변성으로 인해 문자열 가로채기와 연결 작업을 자주 수행하면 성능이 저하될 수 있습니다. Java 개발에서 문자열 가로채기 및 연결 성능을 향상시키기 위해 다음과 같은 최적화 전략을 채택할 수 있습니다. StringBuilder 또는 StringBuffer를 사용한 연결: Java에서는 문자열

Go 언어의 문자열 가로채기 구현 원리에 대한 심층적인 이해 Go 언어의 문자열 가로채기 구현 원리에 대한 심층적인 이해 Mar 12, 2024 pm 06:27 PM

고성능 프로그래밍 언어인 Go 언어는 문자열 연산 및 처리를 위한 풍부한 방법과 기능을 제공합니다. 그 중 문자열 가로채기 연산은 우리가 자주 사용하는 기능 중 하나입니다. 이 기사에서는 Go 언어의 문자열 가로채기 구현 원리를 살펴보고 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 문자열 가로채기란 무엇입니까? Go 언어에서 문자열 가로채기는 문자열에서 부분 문자열을 가로채는 작업을 의미합니다. 시작 위치와 끝 위치를 지정하면 원래 문자열에서 지정된 범위를 얻을 수 있습니다.

Java 12의 새로운 기능: 새로운 String API를 사용하여 문자열을 가로채고 연결하는 방법 Java 12의 새로운 기능: 새로운 String API를 사용하여 문자열을 가로채고 연결하는 방법 Jul 31, 2023 pm 12:55 PM

널리 사용되는 프로그래밍 언어인 Java는 지속적으로 개발되고 업데이트될 때마다 개발자의 코딩 효율성을 향상시키기 위한 몇 가지 새로운 특징과 기능이 도입됩니다. 최신 버전인 Java12의 특징 중 하나는 문자열 가로채기와 연결을 더욱 편리하고 효율적으로 만들어주는 새로운 StringAPI의 도입입니다. 이전 버전에서는 문자열 가로채기 및 연결 작업을 substring() 및 "+" 연산자를 호출하여 구현해야 했지만 이러한 메서드는 많은 수의 문자열 작업을 처리할 수 없었습니다.

See all articles