백엔드 개발 PHP 튜토리얼 PHP中strlen和mb_strlen的区别详解

PHP中strlen和mb_strlen的区别详解

Jun 20, 2016 pm 01:03 PM
PHP 기술

PHP中,strlenmb_strlen两个函数都是用来求字符串长度的,也是我们日常工作中会经常使用到的函数之一,虽然不算难理解,但是对于一些初学者来说,如果不看手册的话,可能还是分不清楚它们的区别。

好的,不废话了,下面就让我们通过例子来给大家讲解这两者之间的区别吧。

<?php /* 测试时文件的编码方式注意一定要是UTF8  */
$str=&#39;中文a字1符&#39;;
echo strlen($str).&#39;<br>';//14
echo mb_strlen($str,'utf8').'<br>';//6
echo mb_strlen($str,'gbk').'<br>';//8
echo mb_strlen($str,'gb2312').'<br>';//10
?>
로그인 후 복사

通过结果分析,我们可以看出在通过strlen计算时,编码格式为UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14,而 在通过mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6 .

利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1)

echo (strlen($str) + mb_strlen($str,'UTF8')) / 2;
로그인 후 복사

例如 :

“中文a字1符” 的strlen($str)值是14,

mb_strlen($str)值是6,

则可以计算出“中文a字1符”的占位是10.

echo mb_internal_encoding();
로그인 후 복사

PHP内置的字符串长度函数strlen是无法正确处理中文字符串的,它能得 到的仅仅只是字符串所占的字节数。而对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,再看UTF-8编码的中文,就是3倍的差异了 (在 UTF-8编码下,一个汉字占3个字节)。

采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和 strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用 mb_strlen($str,'UTF-8')。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过 mb_internal_encoding()函数得到。

注意:mb_strlen并不是PHP的核心函数,使用前必须确保在php.ini中加载了php_mbstring.dll这一项,即确保 “extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。也就不能使用这个函数了。包括mb_开头的一些函数,如mb_substr()函数等等。


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

PHP의 파일 업로드 및 다운로드 기술에 대한 자세한 설명 PHP의 파일 업로드 및 다운로드 기술에 대한 자세한 설명 Jun 25, 2023 pm 05:57 PM

PHP는 웹사이트 개발에 널리 사용되는 매우 인기 있는 서버측 프로그래밍 언어입니다. 그 중 파일 업로드 및 다운로드는 웹사이트에서 흔히 사용되는 기능 중 하나이며, PHP는 이러한 기능을 구현하기 위한 풍부한 기능과 기술을 제공합니다. 이 기사에서는 웹사이트를 보다 효율적으로 개발할 수 있도록 PHP의 파일 업로드 및 다운로드 기술을 자세히 소개합니다. 파일 업로드 파일 업로드는 로컬 컴퓨터에서 원격 서버로 파일을 전송하는 것을 의미하며, 파일을 업로드한 후 이러한 파일을 저장, 처리 및 표시할 수 있습니다. PHP에서

PHP Kuaishou API 인터페이스 호출 기술: 인터페이스에서 반환된 오류 정보를 처리하는 방법 PHP Kuaishou API 인터페이스 호출 기술: 인터페이스에서 반환된 오류 정보를 처리하는 방법 Jul 20, 2023 pm 11:22 PM

PHP Kuaishou API 인터페이스 호출 팁: 인터페이스에서 반환된 오류 정보를 처리하는 방법 PHP를 사용하여 Kuaishou API 인터페이스를 호출할 때 인터페이스에서 오류를 반환하는 상황이 자주 발생합니다. 처리 인터페이스에서 반환된 오류 정보에 대해 적절한 처리 및 피드백을 제공하여 애플리케이션의 안정성과 사용자 경험을 개선해야 합니다. 이 기사에서는 인터페이스에서 반환된 오류 정보를 처리하는 몇 가지 기술을 소개하고 해당 코드 예제를 제공합니다. 예외를 포착하려면 try-catch를 사용하십시오. API 인터페이스를 호출할 때 일부 예외 오류가 발생할 수 있습니다.

프레임워크 내 PHP의 페이징 기술 적용 방법에 대한 자세한 설명 프레임워크 내 PHP의 페이징 기술 적용 방법에 대한 자세한 설명 Jun 09, 2023 am 11:40 AM

인터넷의 급속한 발전으로 인해 사용자의 검색 경험을 향상시키기 위해 데이터 페이징 기능을 구현해야 하는 웹사이트가 점점 더 많아지고 있습니다. 웹 개발에서 PHP는 가장 널리 사용되는 서버측 프로그래밍 언어 중 하나이며, 데이터 페이징 기능은 PHP 개발에 없어서는 안 될 기술입니다. 이 기사에서는 프레임워크에서 PHP의 페이징 기술을 적용하는 방법을 소개하고 다양한 페이징 솔루션의 장단점을 비교합니다. 1. 전통적인 PHP 페이징 방법 전통적인 PHP 개발에서 데이터 페이징 기능을 구현하려면 많은 코드를 작성해야 하며 각 페이지에서 이를 반복해야 합니다.

PHP에서 개행 문자 교체에 대해 자세히 알아보세요. PHP에서 개행 문자 교체에 대해 자세히 알아보세요. Mar 20, 2024 pm 06:42 PM

PHP에서 줄 바꿈을 바꾸는 것은 실제 개발, 특히 텍스트 데이터를 처리할 때 자주 발생하는 문제입니다. 개행 문자는 운영 체제에 따라 다르게 표시될 수 있습니다. 일반적으로 Windows 시스템에서는 ""이고 Linux 시스템에서는 ""입니다. 따라서 텍스트 데이터가 정상적인 형식이 되도록 균일하게 줄 바꿈을 처리해야 합니다. 이 기사에서는 PHP에서 개행 문자를 바꾸는 기술을 살펴보고 구체적인 코드 예제를 제공합니다. 1. PHP 내장 함수를 사용하여 줄 바꿈을 처리합니다. PHP는 몇 가지 내장 함수를 제공합니다.

PHP 프로그래밍 팁: 배열에서 누락된 숫자를 빠르게 찾는 방법 PHP 프로그래밍 팁: 배열에서 누락된 숫자를 빠르게 찾는 방법 Mar 01, 2024 pm 04:27 PM

PHP 프로그래밍 팁: 배열에서 누락된 숫자를 빠르게 찾는 방법 프로그래밍을 하다 보면 배열에서 특정 숫자가 누락되었는지 확인해야 하는 상황에 자주 직면하게 됩니다. 이때, 적시에 처리할 수 있도록 배열에서 누락된 숫자를 찾는 빠르고 효과적인 방법이 필요합니다. 이 기사에서는 특정 코드 예제를 사용하여 배열에서 누락된 숫자를 빠르게 찾는 방법을 보여주는 PHP 기반 프로그래밍 기술을 소개합니다. 1. 방법 1: 루프를 사용하여 배열을 순회합니다. 먼저 배열을 반복하여 배열에서 누락된 숫자를 확인할 수 있습니다. 특정 단계

PHP 프로그래밍 팁: 이미지 크기 조정을 처리하는 방법 PHP 프로그래밍 팁: 이미지 크기 조정을 처리하는 방법 Aug 19, 2023 am 10:36 AM

PHP 프로그래밍 팁: 이미지 크기 조정을 처리하는 방법 현대 웹 디자인에서 이미지는 필수적인 부분이며 이미지 크기 조정은 일반적인 작업 중 하나입니다. 이미지 모음을 표시하든, 다양한 크기의 장치 요구 사항에 응답하든, 이미지 크기 조정은 중요한 역할을 합니다. 이 기사에서는 PHP 프로그래밍 언어를 사용하여 이미지 크기 조정을 처리하는 방법을 소개하고 참조용 코드 예제를 첨부합니다. 1. 이미지 크기 조정을 위해 GD 라이브러리를 사용합니다. GD 라이브러리는 PHP의 강력한 이미지 처리 라이브러리로 이미지 크기 조정 기능을 구현할 수 있습니다. 먼저, 다음을 확인하세요.

PHP 높은 동시성 처리 능력 분석 PHP 높은 동시성 처리 능력 분석 Aug 10, 2023 pm 06:53 PM

PHP 고동시성 처리 능력 분석 인터넷의 발달로 인해 웹 사이트 동시 방문에 대한 요구 사항이 점점 더 높아지고 있습니다. 웹사이트 개발을 위한 프로그래밍 언어로서 PHP는 높은 동시 액세스 압력에 직면했을 때 성능과 안정성을 향상시키기 위해 특별한 처리 기술이 필요합니다. 이 기사에서는 PHP의 높은 동시성 처리 기술을 소개하고 코드 예제를 제공합니다. PHP-FPMPHP-FPM(FastCGIProcessManager)을 사용하면 PHP에서 공식적으로 제공하는 프로세스 관리자로,

50가지 기능 구현 기술을 익히고 PHP 개발 경험 공유 50가지 기능 구현 기술을 익히고 PHP 개발 경험 공유 Nov 22, 2023 pm 04:51 PM

PHP 개발에서 50가지 기능 구현 기술과 경험 공유를 마스터하세요. 우리는 항상 효율적이고 고품질의 코드 구현을 추구합니다. 개발 효율성과 코드 품질을 향상시키기 위해서는 다양하고 복잡한 개발 요구와 과제에 대처할 수 있는 경험과 기술을 축적해야 합니다. 이 기사에서는 PHP 개발 여정에 있는 모든 사람에게 도움이 되기를 바라며 다양한 기능 구현을 위한 50가지 PHP 개발 팁과 경험을 공유하겠습니다. 적절한 프레임워크 사용: 자신에게 적합한 PHP 프레임워크를 선택하고 익숙해지면 개발 효율성을 높이고

See all articles