PHP函数:substr()的用法和示例代码
substr() 是 PHP 中一种常用的字符串函数,该函数用于截取字符串的一部分。其原型如下:
substr ( string $string , int $start [, int $length ] ) : string
其中,
- $string:表示要截取的字符串。
- $start:表示截取字符串的起始位置,位置从 0 开始计算。当 start 为正数时,表示从字符串开头截取的起始位置。当 start 为负数时,表示从字符串结尾倒数计算的起始位置。
- $length:可选参数,表示截取的长度。当 length 为正数时,表示截取的长度。当 length 为负数时,表示从结尾处倒数计算的长度。如果 length 被省略或者大于 $string 的长度,则表示截取全部字符串。
该函数返回截取的字符串部分。
下面是一些示例代码,以便更好地理解 substr() 函数的用法。
#### 示例 1
截取字符串的一部分:
$str = "Hello World"; $substring = substr($str, 0, 5); echo $substring; // 输出 "Hello"
在以上代码中,使用 substr() 函数从字符串 $str 中截取了从位置 0 开始的前 5 个字符,即 "Hello"。
#### 示例 2
截取从字符串结尾开始的一部分:
$str = "Hello World"; $substring = substr($str, -5); echo $substring; // 输出 "World"
在以上代码中,使用 substr() 函数从字符串 $str 中截取了从尾部开始的 5 个字符,即 "World"。
#### 示例 3
截取字符串的一部分,省略第三个参数:
$str = "Hello World"; $substring = substr($str, 6); echo $substring; // 输出 "World"
在以上代码中,使用 substr() 函数从字符串 $str 中截取了从位置 6 开始到字符串结尾的所有字符,即 "World"。由于省略了第三个参数,所以截取的长度为从 $start 到结尾的所有字符。
#### 示例 4
用负数作为起始位置截取字符串的一部分:
$str = "Hello World"; $substring = substr($str, -5, 2); echo $substring; // 输出 "Wo"
在以上代码中,使用 substr() 函数从字符串 $str 中截取了从尾部开始第 5 个字符作为起始位置的字符,并截取长度为 2 的字符,即 "Wo"。
#### 示例 5
用负数作为起始位置,省略第三个参数截取字符串的一部分:
$str = "Hello World"; $substring = substr($str, -5); echo $substring; // 输出 "World"
在以上代码中,使用 substr() 函数从字符串 $str 中截取了从尾部开始的 5 个字符作为起始位置的字符,并且没有指定长度,所以截取的长度为从 $start 到结尾的所有字符,即 "World"。
#### 示例 6
用 substr() 函数来截取 UTF-8 编码的字符串:
$str = "你好,世界!"; $substring = substr($str, 0, 6); // 截取前面 6 个字符 echo $substring; // 输出 “你好,” // 截取后面 6 个字符 $substring = substr($str, -6); echo $substring; // 输出 ",世界!"
在以上代码中,使用 substr() 函数从字符串 $str 中截取了 UTF-8 编码的字符,即中文字符。注意,UTF-8 编码的字符每个字符占用的字节数不同,所以需要谨慎使用 substr() 函数来截取字符串。否则可能会导致乱码或者截取不完整。
