PHP字符串截取函数substr的用法
PHP 中的 substr 函数可用于截取字符串中的一个子字符串。 substr 函数有三个参数, 个参数是字符串,第二个参数是截取子字符串的起始位置,第三个参数是截取子字符串的长度。 使用 substr 函数的语法为:
substr(string $string, int $start, int|null $length)
下面我们看一个简单的示例:
$string = "Hello World"; $result = substr($string, 0, 5); echo $result; // 输出 "Hello"
在上面的示例中,我们截取了字符串 Hello World 的 个字符到第五个字符组成的子字符串。 因此,输出结果为 Hello。
如果省略第三个参数,则会从指定位置截取到字符串的末尾。 示例:
$string = "Hello World"; $result = substr($string, 6); echo $result; // 输出 "World"
在上面的示例中,我们从字符串 Hello World 的第七个字符开始截取,因为我们省略了第三个参数,所以会一直截取到字符串的末尾。输出结果为 World。
当 $start 参数为负数时,表示从字符串末尾开始计算位置。 示例:
$string = "Hello World"; $result = substr($string, -5); echo $result; // 输出 "World"
在上面的示例中,我们从字符串 Hello World 的倒数第五个字符开始截取,因为 $start 为负数,所以是从字符串末尾开始计算位置。输出结果为 World。
截取长度不能为负数,否则会导致错误。 如果 $length 参数被省略或为 null,则会截取从 $start 参数指定的位置到字符串末尾的所有字符。 如果 $length 参数大于字符串剩余的字符数,则会截取从 $start 参数指定的位置到字符串末尾的所有字符。 示例:
$string = "Hello World"; $result = substr($string, 0, -6); echo $result; // 输出 "Hello"
在上面的示例中,我们从字符串 Hello World 的 个字符开始截取,然后截取到倒数第六个字符之前,最后再将得到的子字符串输出。 因为 $length 参数为负数,所以截取的长度为字符串长度减去倒数第六个字符前面的位置。输出结果为 Hello。
如果字符串非 UTF-8 编码,substr 函数的行为可能会受到影响。如果字符串中包含多字节字符,那么 substr 函数不能正确识别多字节字符的边界,可能会截取多字节字符的一部分,导致结果出错。 为了避免这种情况,可以考虑使用 mb_substr 函数代替 substr 函数进行字符串截取。
总结:
substr 函数可用于截取字符串中的一个子字符串。 它的语法为 substr(string $string, int $start, int|null $length)。必须指定字符串和开始位置,可选指定长度,如果没有指定长度,则截取到字符串的末尾。PHP 中的 substr 函数不能正确支持多字节字符集,mb_substr 函数可以代替 substr 函数来做到支持多字节字符集。
