= $end) break; if($tokens[$pos] == ']') { ++$pos; break; } $res[] = ParseVSN1Tokens($tokens, $pos); if($tokens[$pos] == ',') ++$pos; } return $res; } $key = $tokens[$pos++]; if($tokens[$pos] == '=') ++$pos; $res[$key] = ParseVSN1Tokens($tokens, $pos); } return $res; } function parse_vsn1($s) { $tokens = preg_split('@(#.*|"(?:\\\"|[^"])*"|[0-9a-zA-Z_][-a-zA-Z_0-9.]*|.)@', $s, -1, PREG_SPLIT_DELIM_CAPTURE); $tokens = array_values(array_filter($tokens, 'VSN1notempty')); $pos = 0; return ParseVSN1Tokens($tokens, $pos); }