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之前的文章或者继续浏览以下相关文章。我希望你将来也能这样做。多多支持脚本之家!