PHP substr()函数详解:从基础到高级的字符串截取技巧

PHP截取字符串substr()函数使用详解

PHP substr()函数详解:从基础到高级的字符串截取技巧

更新时间:2023年8月16日10:33:55 作者:Shibetsu wyx

PHP 的 substr() 函数用于返回字符串的子字符串。它接受三个参数:字符串本身、起始位置和所需的长度。本文主要详细介绍PHPsubstr()函数的使用。有需要的朋友可以参考一下

目录

substr() 可以“截取”字符串。

语法

string substr( $str, start, length);

范围

返回值

1.截取字符串

1)字符串的“索引”从0开始,“空格”也算作一个字符。

例1:从左边第6个字符开始,向右截取4个字符。

echo substr('0123456789',6,4).PHP_EOL;
echo substr('01234 6789',6,4);

输出:

6789

6789

2)start和length可以为负数,负数含义相反。

例2:从右边第6个字符开始,向右截取4个字符。

echo substr('9876543210',-6,4);

输出:

5432

例3:从左边第6个字符开始,截取到右边第3个字符。

echo substr('0123456789321',6,-3);

输出:

67893

例4:从右边第6个字符开始,截取到右边第4个字符。

echo substr('9876543210',-6,-4);

输出:

54

2.截取中文字符串

“英文”字符占用1个字节,UTF8编码的“中文”占用3个字节,GB2321编码的中文占用2个字节。

截取中文时,将一个(UTF8编码)汉字截取为三个字符串。 start和length的值应该是“3的倍数”,否则会截取乱码。

例子:

echo substr('零一二三四五六七八九',0,3).PHP_EOL;
echo substr('零一二三四五六七八九',3,3).PHP_EOL;
echo substr('零一二三四五六七八九',3,1);

输出:

零

一

�

3.长度的特殊值

1)length可以省略,默认会截到字符串的“末尾”。

例子:

echo substr('0123',1).PHP_EOL;
echo substr('0123',-1);

输出:

123

2)当length为0、null、false时,表示截取0个字符,substr()将返回空字符串。

例子:

var_dump(substr('0123',1,0));
var_dump(substr('0123',1,null));
var_dump(substr('0123',1,false));

输出:

字符串(0)“”

字符串(0)“”

字符串(0)“”

4、启动的特殊价值

1)当start超过字符串的“长度”时,将返回false。

例子:

var_dump(substr('0123',11));

输出:

布尔(假)

2)start可以是数字串,但内容必须是“纯数字”,否则会报错。

例子:

var_dump(substr('0123','0'));

输出:

字符串(4)“0123”

3) start 可以是“布尔类型”(true=1; false=0)。

例子:

var_dump(substr('0123',true));
var_dump(substr('0123',false));

输出:

字符串(3)“123”

字符串(4)“0123”

4)当start中包含运算符时,会先对其进行“运算”,然后将运算结果“赋值”给start。

例子:

var_dump(substr('0123',1+1));
var_dump(substr('0123',1*2));
var_dump(substr('0123',~~2));
var_dump(substr('0123',1&1));

输出:

字符串(2)“23”

字符串(2)“23”

字符串(2)“23”

字符串(3)“123”

5)当start为16进制时,会自动转换为0。

示例:11 的十六进制值为 0xB

var_dump(substr('0123456789abcde',0xB));

输出:

字符串(4)“bcde”

关于PHP的substr()函数截取字符串的详细使用方法的文章到此结束。关于PHP substr()函数的更多信息,请搜索Script House之前的文章或者继续浏览以下相关文章。我希望你将来也能这样做。多多支持脚本之家!

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

53阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

44阅读

php一句话木马,一句话木马ctf

2026年10月05日

48阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

50阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

47阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

42阅读