我有可能是两种形式之一的字符串:聪明的方式来有条件地拆分这个字符串?
prefix=key=value (which could have any characters, including '=')
或
key=value
所以我需要将它拆分无论是在第一或第二等号的基础上,布尔值被设置在其他地方。我这样做:
if ($split_on_second) {
$parts = explode('=', $str, 3);
$key = $parts[0] . '=' . $parts[1];
$val = $parts[2];
} else {
$parts = explode('=', $str, 2);
$key = $parts[0];
$val = $parts[1];
}
这应该工作,但感觉不雅。有任何更好的想法在PHP? (我想有一个正则表达式忍者的方式来做到这一点,但我不是一个正则表达式忍者;-)
使用正则表达式会导致两个问题。 – CMircea 2010-05-27 22:05:08
OT:如果'value'可以包含'=',那么'$ val'赋值似乎是错误的...... – schnaader 2010-05-27 22:08:43
您是否使用“prefix = key = vale”?如果你有选择,把事情改为“前缀:键=值”和“键=值”将使你的生活变得更加简单。 – 2010-05-27 22:11:11