Je HTML à partir d'un aller chercher Smarty et la nécessité de le nettoyer (veulent tout simplement supprimer des espaces supplémentaires, et le format/indent le HTML bien), j'utilise bien rangé faire quelque chose comme:Utilisation de Tidy pour nettoyer HTML, le contenu HTML est en cours de modification, problème d'encodage?
$html = $smarty->fetch('foo.tmpl');
$tidy = new tidy;
$tidy->parseString($html, array(
'hide-comments' => TRUE,
'output-xhtml' => TRUE,
'indent' => TRUE,
'wrap' => 0
));
$tidy->cleanRepair();
return $tidy;
Bien que Cela fonctionne bien pour l'anglais, le support multilingue semble casser cela. Par exemple, j'ai des caractères arabes ok en $ html, mais après avoir rangé un mauvais encodage:
& Ugrave; & Dagger; & Ugrave; „ et Oslash; £ & Ugrave; & poignard; & Oslash; ª & Ugrave; & hellip; & Oslash; ª & Oslash; £ & Ugrave; ƒ et Oslash; ¯ et Oslash; £ & Ugrave; & poignard; & Ugrave; ƒ et Oslash; ª & Oslash; & plusmn; & Ugrave; & Scaron; & Oslash; ¯
Y a-t-il un paramètre dans tidy qui formatera le HTML, mais laissera le HTML lui-même? J'ai regardé ce poste: PHP "pretty print" HTML (not Tidy) mais il semble que cela ne fonctionnera pas puisque je saisis mon code HTML de smarty.
Toute suggestion appréciée.