Je veux tout bêtement parser une page en XHTML 1.0 strict pour modifier un peu son comportement (en fait, l'idée c'est de tester un peu le HTML 5 et le XHTML 2 avec les navigateurs, mais sans me casser la tête => je bufferise tout, et je modifie un peu le rendu)
Pour l'instant, je veux juste prendre en entrée le XHTML 1.0, le parser, et le réafficher tel quel (donc, normalement, ça devrait marcher sans souci).
if($xhtml5) { ob_start('ob_flush_transform'); }
function ob_flush_transform($buffer) {
global $xml_output;
$xml_output = '';
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "transtype_begin", "transtype_end");
xml_set_character_data_handler($xml_parser, "transtype_content");
xml_set_default_handler($xml_parser, "transtype_default");
xml_parse($xml_parser, $buffer);
xml_parser_free($xml_parser);
return $xml_output;
}
function transtype_begin($parser, $name, $attr) {
global $xml_output;
$attrs = '';
foreach($attr as $key => $value) {
$key = strtolower($key);
$attrs .= " $key=\"$value\"";
}
$xml_output .= "<$name$attrs>\n";
}
function transtype_end($parser, $name) {
global $xml_output;
$name = strtolower($name);
$xml_output .= "</$name>\n";
}
function transtype_content($parser, $content) {
global $xml_output;
$xml_output .= $content;
}
function transtype_default($parser, $content) {
global $xml_output;
$xml_output .= $content;
}
Cependant, dans mon code XHTML $buffer (farpaitement valide) j'ai :
<meta name="copyright" content="© 2008 flan" />Dans le code généré $xml_output, j'ai
©<meta name="copyright" content=" 2008 flan">
</meta>
Pourquoi le © bouge-t-il ?