我有可能是兩種形式之一的字符串:聰明的方式來有條件地拆分這個字符串?
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