$s{$i} bude fungovat i s UTF-8. Na tu si ale ještě nějaký ten měsíc nebo rok počkáme...
Máte pravdu. Žil jsem v domnění, že speciální znaky je nutné escapovat i uvnitř hodnot atributů. Nedostatek by měl vyřešit následující kód
$in_quote = '';
while ($i < strlen($s) && ($in_quote || $s{$i} != '>')) {
if (($s{$i} == '"' || $s{$i} == "'") && !$in_quote) {
$in_quote = $s{$i};
} elseif ($in_quote == $s{$i}) {
$in_quote = '';
}
$i++;
}
místo původního
while ($i < strlen($s) && $s{$i} != '>') {
$i++;
}
Všiml jste si ještě něčeho problematického?