2021-01-03 15:25:44
PHP 提供了多种字符串截取方法,以下是详细说明和示例:
1. substr() 函数核心功能:从指定位置截取特定长度的字符。语法:substr(string $string, int $start, ?int $length = null): string
$string:原始字符串。
$start:起始位置(从 0 开始,负数表示从末尾倒数)。
$length(可选):截取长度,默认到字符串末尾。
示例:
$str = 'Hello World';echo substr($str, 6, 5); // 输出:World(从位置6开始截取5个字符)echo substr($str, -5); // 输出:World(倒数第5个字符到末尾)2. mb_substr() 函数(多字节安全)适用场景:处理中文、日文等多字节字符(避免乱码)。语法:mb_substr(string $string, int $start, ?int $length = null, ?string $encoding = null): string示例:
$str = '你好,世界';echo mb_substr($str, 3, 2, 'UTF-8'); // 输出:世界3. strtok() 函数核心功能:基于分隔符逐步截取字符串的标记(需循环调用)。语法:strtok(string $string, string $delimiter): string|false示例:
$str = 'apple,banana,orange';$token = strtok($str, ','); // 第一次调用传入字符串while ($token !== false) { echo $token . "n"; // 依次输出:apple、banana、orange $token = strtok(','); // 后续调用只需传分隔符}4. explode() + 数组操作核心功能:通过分隔符分割字符串为数组,再按索引截取。语法:explode(string $delimiter, string $string, int $limit = PHP_INT_MAX): array示例:
$str = 'one:two:three';$parts = explode(':', $str);echo $parts[1]; // 输出:two// 限制分割次数$parts = explode(':', $str, 2); // 结果:['one', 'two:three']5. preg_split()(正则分割)适用场景:复杂分隔规则(如多个空格或特殊符号)。示例:
$str = 'apple bananatorange';$parts = preg_split('/s+/', $str); // 按任意空白字符分割print_r($parts); // 输出:['apple', 'banana', 'orange']6. 字符串截取到特定字符方法:结合 strpos() 和 substr()。示例:
$str = 'name=John;age=30';$pos = strpos($str, ';');echo substr($str, 0, $pos); // 输出:name=John总结建议:根据具体需求选择合适方法,确保代码简洁高效。