2

我已经浏览了文档,但没有看到如何防止 tidy 剥离我的 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
4

1 回答 1

1

似乎没有办法像这样在 php 中使用 tidy。(即使从 php 5.5 开始)在尝试了很多变体之后,包括应该是有效的 SGML 之类的东西,<script language="php">并且<!-- <?php echo 1; ?> !--> 它似乎主动剥离了 php 标签。

php 中的 tidy 库最常被用作输出过滤器;在发送到浏览器之前获取页面的所有输出并修复它的东西。最基本的示例就在php 手册中。

<?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;
于 2013-10-28T22:58:00.727 回答