Php 使用Tidy清理HTML,HTML内容正在更改,编码问题?
我正在从smarty模板获取HTML,需要清理它(只需删除额外的空白,并对HTML进行良好的格式化/缩进),我使用tidy执行以下操作:Php 使用Tidy清理HTML,HTML内容正在更改,编码问题?,php,formatting,character-encoding,tidy,htmltidy,Php,Formatting,Character Encoding,Tidy,Htmltidy,我正在从smarty模板获取HTML,需要清理它(只需删除额外的空白,并对HTML进行良好的格式化/缩进),我使用tidy执行以下操作: $html = $smarty->fetch('foo.tmpl'); $tidy = new tidy; $tidy->parseString($html, array( 'hide-comments' => TRUE, 'output-xhtml' => TRUE, 'indent' => TRUE, 'wrap' =>
$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中有阿拉伯字符ok,但在tidy之后,我得到了一些糟糕的编码:
Ù
在tidy中是否有一个设置可以格式化HTML,但不处理HTML本身?我看了这篇文章:但这似乎行不通,因为我从smarty那里获取HTML
如有任何建议,我们将不胜感激 尝试使用第二个参数设置parseString中的编码
尝试使用第二个参数设置parseString中的编码 使用raw作为编码参数
对于raw,Tidy将输出大于127的值,而不将其转换为实体,并且所有阿拉伯字符都大于127 使用raw作为编码参数
对于raw,Tidy将输出大于127的值,而不将其转换为实体,并且所有阿拉伯字符都大于127
$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;