我有字符串,字符串可能包含 0 个或多个冒号“:”
我需要拆分这个字符串并获得 2 个变量:
1) $before
= 第一个冒号之前的字符串
2) $after
= 第一个冒号之后的字符串
如果字符串不包含冒号, $before
并且$after
必须是空字符串
也就是说,从aa:ss:dd:44
$before = aa
和$after = ss:dd:44
我有两个想法,如何做到这一点:
1)
$str = "aa:ss:dd:44";
$before = mb_strstr($str, ":", TRUE, "utf-8");
$after = mb_substr( mb_strstr($str, ":", FALSE, "utf-8"), 1, mb_strlen($str, "utf-8") , "utf-8" );
2)
$str = "aa:ss:dd:44";
preg_match_all("#(^[^:]*):(.*)#u", $str, $matches);
if (isset($matches[1][0])) {
$before = $matches[1][0];
}
else {
$before = "";
}
if (isset($matches[2][0])) {
$after = $matches[2][0];
}
else {
$after = "";
}
但我认为两者都不是最佳的东西,你有更好的主意吗?