Я извлекаю HTML из шаблона smarty и мне нужно его очистить (просто хочу удалить лишние пробелы и красиво отформатировать / отступить в HTML), я использую tidy, чтобы сделать что-то вроде:
$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;
В то время как для английского это работает нормально, многоязычная поддержка, кажется, ломает это. Например, у меня есть арабские символы, хорошо в $ html, но после приборки я получаю немного неприятную кодировку:
& Ugrave; & Dagger; & Ugrave; & bdquo; & Oslash; & фунт; & Ugrave; & кинжалом; & Oslash; & ordf; & Ugrave; & hellip; & Oslash; & ordf; & Oslash; & фунт; & Ugrave; & fnof; & Oslash; & MACR; & Oslash; & фунт; & Ugrave; & кинжалом; & Ugrave; & fnof; & Oslash; & ordf; & Oslash; & plusmn; & Ugrave; & Scaron; & Oslash; & MACR;
Есть ли в tid параметр, который будет форматировать HTML, но оставить сам HTML в покое? Я посмотрел на этот пост: PHP "красивая печать" HTML (не Tidy) но похоже, что это не сработает, так как я хватаю свой HTML от smarty.
Любые предложения приветствуются.