{␊ |
unset($stanzaLine['hash']);␊ |
$valCount = 0;␊ |
while ($in[$pos] == '"') {␊ |
++$pos; // opening quote␊ |
// if hashs and plain values are encountered in the same␊ |
// value list, we add the hash values as simple values as well␊ |
while ($in[$pos] == '"' || $in[$pos] == '[') {␊ |
$isHashValue = $in[$pos] == '[';␊ |
++$pos; // opening quote / bracket␊ |
$stanzaLine['values'][$valCount] = '';␊ |
while ($pos < $length) {␊ |
$ch = $in[$pos]; $pr = $in[$pos-1];␊ |
if ($ch == '"' && $pr != '\\') break;␊ |
if (($isHashValue && $ch == ']')␊ |
||(!$isHashValue && $ch == '"' && $pr != '\\'))␊ |
break;␊ |
++$pos;␊ |
$stanzaLine['values'][$valCount] .= $ch;␊ |
}␊ |
++$pos; // closing quote␊ |
␊ |
if (!$isHashValue) {␊ |
$stanzaLine['values'][$valCount] = str_replace(␊ |
array("\\\\", "\\\""),␊ |
array("\\", "\""),␊ |
$stanzaLine['values'][$valCount]␊ |
);␊ |
}␊ |
␊ |
if ($pos >= $length)␊ |
break;␊ |
␊ |
|
++$valCount;␊ |
}␊ |
}␊ |
␊ |
for ($i = 0; $i <= $valCount; $i++) {␊ |
$stanzaLine['values'][$i] = str_replace(␊ |
array("\\\\", "\\\""),␊ |
array("\\", "\""),␊ |
$stanzaLine['values'][$i]␊ |
);␊ |
}␊ |
}␊ |
␊ |
$stanza[] = $stanzaLine;␊ |