PHP Conference Japan 2024

Tidy 示例

这个简单的示例演示了基本的 Tidy 用法。

示例 #1 基本 Tidy 用法

<?php
ob_start
();
?>
<html>a html document</html>
<?php
$html
= ob_get_clean();

// 指定配置
$config = array(
'indent' => true,
'output-xhtml' => true,
'wrap' => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// 输出
echo $tidy;
?>

添加注释

用户贡献的注释 3 条注释

gk at anuary dot com
10 年前
如果您正在寻找 HTML 美化器(一种用于缩进脚本生成的 HTML 输出的工具),Tidy 扩展可能不是适合这项工作的工具。

首先,您不应该在生产代码中使用 Tidy 或替代方案(例如 HTML Purifier)。HTML 后处理是一项相对占用资源的任务,尤其是在底层实现依赖于 DOM API 的情况下。但是,除了性能之外,生产环境中的 HTML 美化可能会隐藏更多更严重的输出问题,这些问题将难以追溯,因为输出将与输入不一致。

如果您仅出于开发目的缩进以使用缩进(输出的一致、可读格式),那么您可以考虑依赖正则表达式的实现。为此,我编写了 https://github.com/gajus/dindent。前面提到的实现和后者之间的区别在于,基于正则表达式的实现不会尝试清理、验证或以其他方式操作您的输出,而只是确保正确的缩进。
i dot c dot lovett at NOSPAM dot gmail dot com
12 年前
任何尝试根据 http://tidy.sourceforge.net/docs/quickref.html#indent 指定“indent: auto”的人

<?php
$tidy_options
= array('indent' => 'auto'); // 将不起作用
$tidy_options = array('indent' => 2); // 等同于 auto

$tidy = new Tidy();
$tidy->parseString($html, $tidy_options);
?>
mmeisam at gmail dot com
4 年前
如果您使用 tidy 来清理 HTML,但只想格式化字符串而不是整个 html 和 head 标签,您可以使用以下配置数组

<?php
$config
= [
'indent' => true,
'output-xhtml' => false,
'show-body-only' => true
];

$tidy = new tidy;
$tidy->parseString($your_html_code, $config, 'utf8');
$tidy->cleanRepair();

echo
$tidy;
?>
To Top