欢迎访问宙启技术站
智能推送

PHP中的substr()函数:从字符串中取出指定长度的子串

发布时间:2023-06-12 17:28:13

PHP中的substr()函数是用于从字符串中取出指定长度的子串的函数。该函数非常常用,一般用来截取字符串的一部分,例如截取一个字符串的前n个字符或者后n个字符等。本文将详细介绍substr()函数的用法和一些注意事项。

substr()函数的语法

substr(string $string, int $start, int $length = ?): ?string

参数说明:

- $string: 必需,要截取的字符串。

- $start: 必需,指定要开始截取的位置,如果是负数,则倒数第几个字符开始截取。

- $length: 可选,指定要截取的长度,如果没有指定,默认从$start开始一直截取到字符串的结尾。

返回值:

截取的字符串,如果指定的$start超出了字符串的范围,则返回false,如果指定的$length为负数,则只取到截止位置(不包含该位置),并且字符串从右往左开始。

substr()函数示例

下面是substr()函数的一些示例,帮助大家了解它的用法。

<?php

 

$str = "Hello world!";

 

// 截取前5个字符

echo substr($str, 0, 5);   // 输出:Hello

 

// 截取第6个字符之后的所有字符

echo substr($str, 6);      // 输出:world!

// 截取倒数第5个字符和倒数第4个字符之间的字符

echo substr($str, -5, 2);  // 输出:rl

// 截取倒数第8个字符及之后所有字符

echo substr($str, -8);     // 输出:lo world!

?>

在这个示例中,$str是要截取的字符串,substr()函数的 个参数就是要截取的字符串,第二个参数是要开始截取的位置,第三个参数可以省略,如果省略就表示从指定位置一直截取到字符串的结尾。

当然,还可以使用其他形式的参数:

<?php

 

$str = "Hello world!";

 

// 截取第6个字符之后的所有字符

echo substr($str, 6);                    // 输出:world!

// 截取倒数第8个字符及之后所有字符

echo substr($str, -8);                   // 输出:lo world!

// 截取第6个字符之后,截取6个字符

echo substr($str, 6, 6);                 // 输出:world!

// 截取倒数第4个字符之前的字符

echo substr($str, 0, -4);                // 输出:Hello wo

// 截取倒数第4个字符及之后的字符

echo substr($str, -4, 4);                // 输出:orld

// 截取倒数第4个字符和倒数第3个字符之间的字符

echo substr($str, -4, -2);               // 输出:or

?>

substr()函数的注意事项

- 切记:$start和$length都是从0开始的。

- 如果$string为空或null,则会返回false。

- 如果$start超出了字符串的长度,则会返回false。

- 如果$length超出了字符串的长度,则会截取到字符串的结尾。

- 如果$start是负数,表示从字符串的末尾开始计算,例如-1表示最后一个字符。

- 如果$length是负数,则会截取到截止位置(不包含该位置),并且字符串从右往左开始。

- 如果$length为0,则返回空字符串。

总结

在编写PHP程序时,substr()函数常常被用来对字符串进行截取和处理。本文已经对substr()函数的用法进行了详细介绍,并解释了一些注意事项,相信读者已经掌握了这个常用的函数的使用方法。