首页 > 后端开发 > 正文

PHP字符串长度计算 - strlen()函数使用介绍(php截取字符串几个实用的函数)

2025-01-23 20:14:53 | 我爱编程网

PHP字符串长度计算 - strlen()函数使用介绍(php截取字符串几个实用的函数)相关内容,小编在这里做了整理,希望能对大家有所帮助,关于PHP字符串长度计算 - strlen()函数使用介绍(php截取字符串几个实用的函数)信息,一起来了解一下吧!

本文目录一览:

PHP字符串长度计算 - strlen()函数使用介绍(php截取字符串几个实用的函数)

PHP字符串长度计算 - strlen()函数使用介绍

strlen()函数和mb_strlen()函数
在PHP中,函数strlen()返回字符串的长度。函数原型如下:
复制代码
代码如下:
int
strlen(string
string_input);
参数string_input为要处理的字符串。
strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1。一个中午字符占两个字节,所以一个中午字符的长度是2。例如
复制代码
代码如下:
<?php
echo
strlen(" www.sunchis.com ");
echo
strlen("三知开发网");
?>
“echo
strlen(" www.sunchis.com ");”的运行结果:15
“echo
strlen("三知开发网");”的运行结果:15
这里有一个疑问,一个中文字符不是占2个字节吗?“三知开发网”,明明是五个汉字,运行的结果怎么会是15?
原因出在这里:strlen()计算时,对于一个UTF-8的中文字符,会把它当做长度为3来处理。当出现中英文混排的情况下,怎么准确的计算字符串的长度呢?这里,得引入另外一个函数mb_strlen()。mb_strlen()函数的用法与strlen()几乎一摸一样,只是多了一个指定字符集编码的参数。函数原型为:
复制代码
代码如下:
int
mb_strlen(string
string_input,
string
encode);
PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节)。
因此,下面的代码能准确计算出中文字符串的长度:
复制代码
代码如下:
<?php
$str
=
"三知sunchis开发网";
echo
strlen($str)."<br>";
//结果:22
echo
mb_strlen($str,"UTF8")."<br>";
//结果:12
$strlen
=
(strlen($str)+mb_strlen($str,"UTF8"))/2;
echo
$strlen;
//结果:17
?>
原理分析:
strlen()计算时,对待UTF-8的中文字符长度是3,所以“三知sunchis开发网”的长度为5×3+7×1=22
在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“三知sunchis开发网”长度为5×1+7×1=12
剩下的就是纯数学问题了,在此就不啰嗦了……
注意:对于mb_strlen($str,'UTF-8'),如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题。

PHP字符串长度计算 - strlen()函数使用介绍(php截取字符串几个实用的函数)

php截取字符串几个实用的函数

在PHP中,处理字符串截取功能时,通常会使用到`substr`函数。然而,在截取包含中文字符的字符串时,可能会遇到乱码问题,因为一个汉字占用两个字节,而英文字符则仅占用一个字节。为解决这一问题,可以使用`mb_substr`函数。

`mb_substr`的用法与`substr`类似,但首先需要确保在`php.ini`中启用了`extension=php_mbstring.dll`扩展,一般空间提供商通常会提供该扩展。代码示例如下:

在使用`mb_substr`时,`start`参数的使用规则如下:

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾的指定位置开始

0 - 在字符串中的第一个字符处开始

接下来,我们介绍`strstr`函数,它用于搜索一个字符串在另一个字符串中的第一次出现。该函数返回从匹配点开始的剩余字符串。如果没有找到所搜索的字符串,则返回`false`。

对于中文字符串的截取,网络上存在多种教程和实现方法,但使用PHP自带的函数通常更为便捷。整理的代码示例如下:

(1)用于截取GB2312编码的中文字符串

(2)用于截取UTF-8编码的多字节字符串

(3)支持UTF-8和GB2312编码的汉字截取函数

总结以上内容,希望能对您有所帮助。在PHP进阶学习过程中,可能会遇到各种问题和挑战,尤其是业务代码编写时的迷茫。为解决这一问题,我整理了一些资源,包括分布式架构、高扩展性、高性能、高并发处理、服务器性能调优、TP6、Laravel、Yii2、Redis、Swoole、Swoft、Kafka、MySQL优化、Shell脚本、Docker、微服务、Nginx等多个知识点的高级进阶资料,需要的朋友们可以免费获取,详细信息请参阅链接或访问我的个人主页及知乎专栏。

php截取字符串函数

我爱编程网(https://www.52biancheng.com)小编还为大家带来php截取字符串函数的相关内容。

PHP中,字符串截取是非常常见的操作。通过使用substr函数,我们可以按照指定位置或长度获取字符串的一部分。以下是一些示例:

首先,substr函数用于从指定位置开始取字符,如从字符串"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的第5个字符开始取,直到字符串结束,结果为"BZYX"。

接着,可以指定截取的长度,如从第9个字符开始取4个字符,得到"DEFG"。另一个例子是取倒数第5个字符,这会返回"V"。

对于倒数字符的截取,substr函数同样适用。从倒数第8个字符开始取4个字符,结果为"力选水女";而从倒数第8个字符开始取到倒数第6个字符(因为长度为2),输出为"力选.. "

在处理中英文混合的字符串时,为了防止乱码,可以使用自定义函数substr_cut。这个函数会截取全角和半角字符混合的字符串,如果超过指定长度,会截取到出现非英文字符的位置,并用".."代替后续内容。 我爱编程网

以上就是PHP字符串长度计算 - strlen()函数使用介绍(php截取字符串几个实用的函数)全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“PHP字符串长度计算 - strlen()函数使用介绍(php截取字符串几个实用的函数)”相关推荐
php截取长度函数 php的字符串strlen()方法
php截取长度函数 php的字符串strlen()方法

php截取字符串函数PHP中,字符串截取是非常常见的操作。通过使用substr函数,我们可以按照指定位置或长度获取字符串的一部分。以下是一些示例:首先,substr函数用于从指定位置开始取字符,如从字符串"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的第5个字符开始取,直到字符串结束,结果为"BZYX"。接着,可以指定截取的长度,如从第9个字符开始取4个字符,得到"DE

2024-12-19 01:40:01
php字符串处理函数(php字符串函数) php问题……php截取字符串几个实用的函数
php字符串处理函数(php字符串函数) php问题……php截取字符串几个实用的函数

php字符串处理函数(php字符串函数)php如何执行字符串中的函数mixedcall_user_func??(callable$callback?[,mixed$parameter?[,mixed$...?]])把第一个参数作为回调函数(callback),并且将其余的参数作为回调函数的参数。error_reporting(E_ALL);fun

2024-11-29 11:13:53
php截取字符串函数(php截取指定2个字符之间字符串的方法)
php截取字符串函数(php截取指定2个字符之间字符串的方法)

php截取字符串函数PHP中,字符串截取是非常常见的操作。通过使用substr函数,我们可以按照指定位置或长度获取字符串的一部分。以下是一些示例:首先,substr函数用于从指定位置开始取字符,如从字符串"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的第5个字符开始取,直到字符串结束,结果为"BZYX"。接着,可以指定截取的长度,如从第9个字符开始取4个字符,得到"DE

2025-01-23 09:43:22
php提取字符串函数 PHP截取一个字符串里某个符号前面的字符串
php提取字符串函数 PHP截取一个字符串里某个符号前面的字符串

PHP截取一个字符串里某个符号前面的字符串$a值的长度,以及参数个数都是未定的.. 要去除掉最后一个&amp;符号以及后面所带的参数。经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了。我们先来看一下PHPsubstr

2024-08-26 04:40:18
php截取字符串函数(PHP利用正则表达式截取字符串,preg_match_all()函数)
php截取字符串函数(PHP利用正则表达式截取字符串,preg_match_all()函数)

php截取字符串函数PHP中,字符串截取是非常常见的操作。通过使用substr函数,我们可以按照指定位置或长度获取字符串的一部分。以下是一些示例:首先,substr函数用于从指定位置开始取字符,如从字符串"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的第5个字符开始取,直到字符串结束,结果为"BZYX"。接着,可以指定截取的长度,如从第9个字符开始取4个字符,得到"DE

2025-02-18 16:28:14
php文字截取函数 php截取字符串函数
php文字截取函数 php截取字符串函数

PHP利用正则表达式截取字符串,preg_match_all()函数&lt;?php$str = '2015-9-15 XXXXXXXX,2015-9-15 XXXXXXXX,2015-9-15 XXXXXXXX,2015-9-15 XXXXXXXX,';preg_match_all('/\d{4}-\d+\-\d+(.*?),/is', $str, $matched);echo "&lt;

2025-01-29 08:06:15
字符串长度怎么算
字符串长度怎么算

字符串长度怎么算长度为从字符串开始,到'\0'结束,所有字符的个数,不包括'\0'本身。C语言的字符串是由字符数组形式保存的,并约定'\0'(ascii码值为0)作为字符串结束符。strlen计算的是字符串的长度,单位是“字符”,只能对字符串运算,而且它是函数(不是运算符),计算时,不包含末尾的"\0";当对字符数组操作时,返回的是数组总存放的字符串的实际长度(也就是\

2024-08-06 02:32:20
PHP怎么获取字符串长度?
PHP怎么获取字符串长度?

PHP怎么获取字符串长度?PHP对中文字符串的处理一直困扰于刚刚接触PHP开发的新手程序员。下面简要的剖析一下PHP对中文字符串长度的处理:(1)PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节;(2)中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8。utf-8能兼容更多的

2025-02-14 06:14:19