Home Backend Development PHP Tutorial PHP中strlen和mb_strlen的区别详解

PHP中strlen和mb_strlen的区别详解

Jun 20, 2016 pm 01:03 PM
php skills

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
?>
Copy after login

通过结果分析,我们可以看出在通过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;
Copy after login

例如 :

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

mb_strlen($str)值是6,

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

echo mb_internal_encoding();
Copy after login

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()函数等等。


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 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 file upload and download techniques in PHP Detailed explanation of file upload and download techniques in PHP Jun 25, 2023 pm 05:57 PM

PHP is a very popular server-side programming language that is widely used in website development. Among them, file uploading and downloading are one of the commonly used functions of websites, and PHP provides a wealth of functions and techniques to implement these functions. In this article, we will introduce in detail the file upload and download techniques in PHP so that you can develop your website more efficiently. File upload File upload refers to sending files from the local computer to a remote server. After uploading the files, we can store, process and display these files. In PHP

PHP Kuaishou API interface calling skills: how to handle the error information returned by the interface PHP Kuaishou API interface calling skills: how to handle the error information returned by the interface Jul 20, 2023 pm 11:22 PM

PHP Kuaishou API interface calling tips: How to handle the error information returned by the interface When using PHP to call the Kuaishou API interface, we often encounter situations where the interface returns errors. For error information returned by the processing interface, we need to provide appropriate processing and feedback to improve the stability and user experience of the application. This article will introduce some techniques for handling error information returned by interfaces and provide corresponding code examples. Use try-catch to catch exceptions. When calling the API interface, some exception errors may occur.

Detailed explanation of the application method of paging technology in PHP in the framework Detailed explanation of the application method of paging technology in PHP in the framework Jun 09, 2023 am 11:40 AM

With the rapid development of the Internet, more and more websites need to implement data paging functions to improve users' browsing experience. In Web development, PHP is one of the most popular server-side programming languages, and the data paging function is an indispensable technology in PHP development. This article will introduce the application method of paging technology in PHP in the framework, and compare the advantages and disadvantages of different paging solutions. 1. Traditional PHP paging method In traditional PHP development, implementing the data paging function requires writing a lot of code, and it needs to be repeated in each page.

Learn more about replacing newlines in PHP Learn more about replacing newlines in PHP Mar 20, 2024 pm 06:42 PM

Replacing newlines in PHP is a problem that is often encountered in actual development, especially when processing text data. The newline character may be expressed differently in different operating systems. It is usually &quot;&quot; in Windows systems and &quot;&quot; in Linux systems. Therefore, we need to uniformly process line breaks to ensure that the text data is in a normal format. This article will delve into the technique of replacing newlines in PHP and provide specific code examples. 1. Use PHP built-in functions to process newlines. PHP provides some built-in functions.

PHP programming tips: How to quickly locate missing numbers in an array PHP programming tips: How to quickly locate missing numbers in an array Mar 01, 2024 pm 04:27 PM

PHP Programming Tips: How to Quickly Locate Missing Numbers in an Array In programming, you often encounter situations where you need to check whether certain numbers are missing in an array. At this time, we need a fast and effective way to locate the missing numbers in the array so that they can be processed in a timely manner. This article will introduce a PHP-based programming technique, using specific code examples to demonstrate how to quickly locate missing numbers in an array. 1. Method 1: Use a loop to traverse the array. First, we can check for missing numbers in the array by looping through the array. Specific steps

PHP Programming Tips: How to Handle Image Scaling PHP Programming Tips: How to Handle Image Scaling Aug 19, 2023 am 10:36 AM

PHP programming skills: How to handle image scaling In modern web design, images are an integral part, and image scaling is one of the common operations. Whether it is displaying a collection of images or responding to the needs of devices of different sizes, image scaling plays an important role. This article will introduce how to use the PHP programming language to handle image scaling, and attach code examples for reference. 1. Use the GD library for image scaling. The GD library is a powerful image processing library in PHP. We can use it to implement the image scaling function. First, make sure

Analysis of PHP high concurrency processing skills Analysis of PHP high concurrency processing skills Aug 10, 2023 pm 06:53 PM

Analysis of PHP High Concurrency Processing Skills With the development of the Internet, the requirements for concurrent visits to websites are getting higher and higher. As a programming language for developing websites, PHP needs some special processing skills to improve performance and stability when faced with high concurrent access pressure. This article will introduce some PHP high concurrency processing techniques and provide code examples. Use PHP-FPMPHP-FPM (FastCGIProcessManager) is a process manager officially provided by PHP, which can effectively

Master 50 function implementation skills and experience sharing in PHP development Master 50 function implementation skills and experience sharing in PHP development Nov 22, 2023 pm 04:51 PM

Master 50 function implementation skills and experience sharing in PHP development. As a PHP developer, we are always pursuing efficient and high-quality code implementation. In order to improve development efficiency and code quality, we need to accumulate some experience and skills to cope with various complex development needs and challenges. In this article, I will share 50 PHP development tips and experiences for implementing various functions, hoping to be helpful to everyone on their PHP development journey. Use an appropriate framework: Choosing and becoming familiar with a PHP framework that suits you can improve development efficiency and

See all articles