substr函数用于从php字符串中提取子字符串,支持正负起始位置和正负长度参数,可实现从开头、结尾或中间截取、排除末尾字符等多种操作。

如果您需要从PHP字符串中提取指定位置和长度的子字符串,则可以使用内置函数substr。以下是该函数的具体使用方法:
一、substr函数基本语法与参数说明
substr函数用于从字符串中截取子串,其行为由起始位置和可选长度参数共同决定。起始位置支持正数(从开头计数)和负数(从结尾计数),长度参数若为负数则表示从末尾排除相应字符数。
1、函数原型为:substr(string, start, length)。
2、string为待处理的原始字符串,必须提供。
立即学习“PHP免费学习笔记(深入)”;
3、start为起始偏移量,0表示第一个字符,-1表示最后一个字符。
4、length为可选参数,表示要截取的字符数;省略时默认截取至字符串末尾。
二、从指定位置开始截取到字符串末尾
当仅提供string和start参数时,substr将返回从start位置开始直到字符串结束的所有字符。该方式适用于获取后缀或忽略前缀内容。
1、定义字符串:$str = "HelloWorld";。
2、调用substr并传入起始位置5:substr($str, 5)。
3、结果为:"World"。
三、从指定位置截取固定长度子串
通过同时指定start和length参数,可精确控制截取范围。该方式适用于提取中间字段或固定宽度内容。
1、定义字符串:$str = "Programming";。
2、调用substr并传入起始位置3、长度4:substr($str, 3, 4)。
3、结果为:"gram"。
四、从字符串末尾向前截取子串
当start参数为负数时,substr从字符串末尾开始计算起始位置。该方式常用于获取文件扩展名或后缀标识。
1、定义字符串:$str = "document.pdf";。
2、调用substr并传入起始位置-3:substr($str, -3)。
3、结果为:"pdf"。
五、从末尾指定位置截取并限制长度
结合负start与正length,可在靠近字符串尾部的位置提取固定长度内容。该方式适用于解析版本号、时间戳等结构化尾部数据。
1、定义字符串:$str = "v2.4.15";。
2、调用substr并传入起始位置-2、长度2:substr($str, -2, 2)。
3、结果为:"15"。
六、使用负length参数排除末尾字符
当length为负数时,substr会从start位置开始截取,但自动排除末尾指定数量的字符。该方式适用于去除常见后缀或截断多余符号。
1、定义字符串:$str = "filename.txt";。
2、调用substr并传入起始位置0、长度-4:substr($str, 0, -4)。
3、结果为:"filename"。











