private static function _split($string, &$result)
{
preg_match_all("/([\\w\\.\\-\\_]*?)[:\\s]*\\{(([^{}]*|(?R))+)\\}/xms", $string, $matches, PREG_SET_ORDER);
if (!empty($matches)) {
foreach ($matches as $m) {
if (empty($m[1])) {
continue;
}
$_data = self::_getKV($m[2]);
if (!isset($result->{$m[1]})) {
if (!is_array($result)) {
$result->{$m[1]} = $_data;
}
} else {
if (is_array($result->{$m[1]})) {
array_push($result->{$m[1]}, $_data);
} else {
$result->{$m[1]} = array($result->{$m[1]}, $_data);
}
}
self::_split($m[2], $_data);
}
}
}