Salut à tous,
Sur un site en iso-8859-1, j'ai des soucis avec les caractères word et des petites erreurs de syntaxe qui sont dus au fait que le backoffice permet aux utilisateurs de faire des copier/coller de Word.
J'ai donc essayé de poser cette fonction (les * c'est pour le forum) :
Le truc bizarre c'est que tidy "ne comprends pas" les transcriptions en caractère numérique valide et je me retrouve avec les carrés de la mort
Si je passe juste la fonction :
Les caractères sont bien convertit.
J'ai essayé avec l'option word-2000 de Tidy mais pas mieux
Je ne sais pas si c'est vraiment le forum pour exposer ce pb mais auriez vous une idée sur ce souci d'encodage et de transcription ?
@+
YvesTan
Modifié par YvesTan (28 May 2005 - 12:12)
Sur un site en iso-8859-1, j'ai des soucis avec les caractères word et des petites erreurs de syntaxe qui sont dus au fait que le backoffice permet aux utilisateurs de faire des copier/coller de Word.
J'ai donc essayé de poser cette fonction (les * c'est pour le forum) :
//--------------------------------------------------------------- Tidy
// configuration
$config_tidy = array('indent'=> true,
'indent-spaces'=> 2,
'output-xhtml' => false,
'show-body-only' => false);
foreach ($config_tidy as $key => $value) {
tidy_setopt($key,$value);
}
// nettoyage du code
function tidycleaner($html) {
// probleme avec caractères word
$conv = array(
chr(129) => '',
chr(130) => '&*#8218',
chr(131) => '&*#402;',
chr(132) => '&*#8222;',
chr(133) => '&*#8230;',
chr(134) => '&*#8224;',
chr(135) => '&*#8225;',
chr(136) => '&*#710;',
chr(137) => '&*#8240;',
chr(138) => '&*#352;',
chr(139) => '&*#8249;',
chr(140) => '&*#338;',
chr(141) => '',
chr(142) => '',
chr(143) => '',
chr(144) => '',
chr(145) => '&*#8216;',
chr(146) => '&*#8217;',
chr(147) => '&*#8220;',
chr(148) => '&*#8221;',
chr(149) => '&*#8226;',
//chr(150) => '–',
chr(150) => '-',
chr(151) => '&*#8212;',
chr(152) => '&*#732;',
chr(153) => '&*#8482;',
chr(154) => '&*#353;',
chr(155) => '&*#8250;',
chr(156) => '&*#339;',
chr(157) => '',
chr(158) => '',
chr(159) => '&*#376;'
);
// on remplace avant de parser
$html = str_replace(array_keys($conv),array_values($conv),$html);
tidy_parse_string($html);
tidy_clean_repair();
$html = tidy_get_output();
// syntaxe xml a supprimer
$html = ereg_replace ("\<\?xml([^\>]*)\>", "", $html);
return $html;
}
Le truc bizarre c'est que tidy "ne comprends pas" les transcriptions en caractère numérique valide et je me retrouve avec les carrés de la mort
Si je passe juste la fonction :
$html = str_replace(array_keys($conv),array_values($conv),$html);
Les caractères sont bien convertit.
J'ai essayé avec l'option word-2000 de Tidy mais pas mieux
Je ne sais pas si c'est vraiment le forum pour exposer ce pb mais auriez vous une idée sur ce souci d'encodage et de transcription ?
@+
YvesTan
Modifié par YvesTan (28 May 2005 - 12:12)