我有一个生成一些 html(表单元素和表格元素)的类,但是这个类在一行中返回所有 html。
所以我尝试使用 tidy 来美化代码(缩进代码、放置换行符等),我遇到的唯一问题是它还会生成我不想要的标签。
代码如下:
tidy_parse_string(
$table->getHtml(),
array(
'DocType' => 'omit',
'indent' => true,
'indent-spaces' => 4,
'wrap' => 0
)
);
我发现删除多余 html 标签的唯一方法是添加一个 str_replace,如下所示:
str_replace(array('<html>','</html>','<body>','</body>','<head>','</head>','<title>','</title>'),'', code);
这行得通,但我真的很希望有一种方法可以告诉 tidy 只美化代码而不插入额外的代码。
最佳答案
试试 show-body-only选项。
例如
$s = '<form method="post" action="?"><table><tr><td><input tpye="submit"></table>';
echo tidy_parse_string($s, array('show-body-only'=>true, 'indent'=>true));
打印
<form method="post" action="?">
<table>
<tr>
<td>
<input tpye="submit">
</td>
</tr>
</table>
</form>
(字符串已被修复和缩进,但未添加 html/body 包装器)。 可以结合 output-xhtml选项,在这种情况下还会为空输入元素添加斜杠。
关于php - 防止tidy添加html标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1963298/