PHP函数:substr()-从字符串中返回指定长度的子字符串
PHP中的substr()函数用于从一个字符串中返回指定长度的子字符串。该函数的语法如下:
substr(string $string, int $start, int $length = ?): string
其中,$string表示要操作的字符串,$start表示从哪里开始截取,$length表示截取的长度。$start和$length都是可选参数,但要注意,如果不指定$length,那么从$start处开始截取到字符串末尾。
下面我们分别介绍下substr()函数的使用方法:
1. 基本用法
基本用法很简单,只需要传入要截取的字符串和起始位置即可。例如,要从字符串“hello world”中截取“world”这个子字符串,代码如下:
$str = 'hello world';
echo substr($str, 6); //输出: world
这里的起始位置为6,表示从第7个字符开始截取。
2. 截取指定长度的子字符串
除了指定起始位置外,我们还可以指定要截取的长度。例如,要截取字符串“hello world”中的前5个字符,代码如下:
$str = 'hello world';
echo substr($str, 0, 5); //输出: hello
这里的第三个参数指定的是截取的长度,为5。
3. 截取字符串末尾的一部分
有时候,我们需要从字符串末尾开始截取一部分字符,可以将起始位置设置为负数。例如,要截取字符串“hello world”中的“world”这个子字符串,代码如下:
$str = 'hello world';
echo substr($str, -5); //输出: world
这里的起始位置为-5,表示从字符串末尾开始的第5个字符开始截取。
4. 截取字符串中间的一部分
如果要截取字符串中间的一部分,可以结合使用起始位置和长度两个参数。例如,要截取字符串“hello world”中的“lo w”这个子字符串,代码如下:
$str = 'hello world';
echo substr($str, 3, 3).substr($str, 6, 2); //输出: lo w
这里的起始位置为3,长度为3,表示从第4个字符开始截取,截取3个字符;接着,从第7个字符开始截取,截取2个字符。
需要注意的是,如果要从字符串中间截取的话,建议先使用strlen()函数获取字符串长度,然后再通过计算得到合适的起始位置和长度。
5. 截取多个子字符串
如果要截取多个子字符串,可以使用数组和循环。例如,要截取字符串“hello world”中的“hello”和“world”两个子字符串,代码如下:
$str = 'hello world';
$positions = [0, 6];
$lengths = [5, 5];
for ($i = 0; $i < count($positions); $i++) {
echo substr($str, $positions[$i], $lengths[$i])."
";
}
这里的$positions数组表示起始位置,$lengths数组表示截取的长度。循环遍历两个数组,每次截取完毕后换行输出。
总结
substr()函数可以方便地从一个字符串中截取指定长度的子字符串。它非常的灵活,可以结合使用起始位置和长度两个参数,实现任意位置和长度的截取。
