用分隔符拆分字符串
explode
和 strstr
是通过分隔符获取子字符串的更简单方法。
包含由公共字符分隔的几个文本部分的字符串可以使用 explode
函数拆分为多个部分。
$fruits = "apple,pear,grapefruit,cherry";
print_r(explode(",",$fruits)); // ['apple', 'pear', 'grapefruit', 'cherry']
该方法还支持限制参数,可以按如下方式使用:
$fruits= 'apple,pear,grapefruit,cherry';
如果 limit 参数为零,则将其视为 1。
print_r(explode(',',$fruits,0)); // ['apple,pear,grapefruit,cherry']
如果设置了 limit 并且为正数,则返回的数组将包含最多限制元素,最后一个元素包含其余字符串。
print_r(explode(',',$fruits,2)); // ['apple', 'pear,grapefruit,cherry']
如果 limit 参数为负,则返回除最后一个 -limit 之外的所有组件。
print_r(explode(',',$fruits,-1)); // ['apple', 'pear', 'grapefruit']
explode
可以与 list
结合使用,将字符串解析为一行中的变量:
$email = "user@example.com";
list($name, $domain) = explode("@", $email);
但是,请确保 explode
的结果包含足够的元素,否则将触发未定义的索引警告。
strstr
在第一次出现给定针之前剥离或仅返回子字符串。
$string = "1:23:456";
echo json_encode(explode(":", $string)); // ["1","23","456"]
var_dump(strstr($string, ":")); // string(7) ":23:456"
var_dump(strstr($string, ":", true)); // string(1) "1"