我从一个聪明的模板中获取HTML并需要清理它(只是想删除额外的空格,并且很好地格式化/缩进HTML),我正在使用整洁来做类似的事情:
$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中有阿拉伯字符,但在整洁后我得到了一些讨厌的编码:
هٓأ††ØªÙ......تأكدأ††ƒƒØªØ±ÙŠØ¯
是否有一个整洁的设置会格式化HTML,但保留HTML本身?我查看了这篇文章:PHP "pretty print" HTML (not Tidy)但似乎这不起作用,因为我从smarty抓取我的HTML。
任何建议表示赞赏。
答案 0 :(得分:1)
尝试使用第二个参数在parseString中设置编码
答案 1 :(得分:0)
$html = $smarty->fetch('foo.tmpl');
$tidy = new tidy;
$tidy->parseString($html, array(
'hide-comments' => TRUE,
'output-xhtml' => TRUE,
'indent' => TRUE,
'wrap' => 0
),
'raw');
$tidy->cleanRepair();
return $tidy;
使用原始作为编码参数
对于原始,Tidy将输出大于127的值而不将其转换为实体,并且所有阿拉伯字符都高于127