防止HTML Tidy剥离PHP

时间:2012-08-21 19:29:35

标签: html htmltidy

我已经阅读了文档,但我没有看到如何防止整理我的PHP。我的配置如下:

anchor-as-name: no
doctype: omit
drop-empty-paras: no
fix-uri: no
literal-attributes: yes
merge-divs: no
merge-spans: no
numeric-entities: no
preserve-entities: yes
quote-ampersand: no
quote-marks: no
show-body-only: yes
indent: auto
indent-spaces: 4
tab-size: 4
wrap: 0
wrap-asp: no
wrap-jste: no
wrap-php: no
wrap-sections: no
tidy-mark: no
new-blocklevel-tags: article,aside,command,canvas,dialog,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,meter 
new-inline-tags: video,audio,canvas,ruby,rt,rp,time,meter,progress,datalist,keygen,mark,output,source,wbr
force-output: yes
quiet: yes
show-warnings: yes

1 个答案:

答案 0 :(得分:1)

似乎没有办法在这样的PHP中使用整洁。 (即使是PHP 5.5) 在尝试了许多变体后,包括应该是有效的SGML的内容,例如<script language="php"><!-- <?php echo 1; ?> !--> 它似乎正在积极剥离php标签。

php中的整洁库通常用作输出过滤器;在将页面的所有输出发送到浏览器并修复它之前,它会获取所有输出。 最基本的例子就是php manual.

<?php
//start the output buffer to capture all page output.
ob_start();
?>
<html>a html document
     <div><?php echo 'do your thing here' ?></div>
</html>
<?php
//get the contents of the output buffer.
$html = ob_get_clean();

// configure tidy
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);
//tidy the html
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();
// Output the clean html.
echo $tidy;