【问题标题】:Prevent tidy from adding html tags防止tidy添加html标签
【发布时间】:2010-12-30 02:47:08
【问题描述】:

我有一个类生成一些 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 只是美化代码而不插入额外的代码。

【问题讨论】:

    标签: php html forms tidy


    【解决方案1】:

    试试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 选项结合使用,在这种情况下还会为空输入元素添加斜杠。

    【讨论】:

    • 不敢相信我错过了那个选项。谢谢!!
    • 亲爱的主。这正是我所需要的,但我永远不会从选项的名称甚至它的描述中猜到它!
    • 如果我想加载 HTML 但通过 XML 显示它怎么办? output-xml=true 所以 show-body-only 不起作用。这种情况怎么办?
    • @ПавелИванов, output-xml: true 覆盖 show-body-only: yes/auto。我认为没有任何方法可以防止这种行为。
    猜你喜欢
    • 2019-01-27
    • 2012-10-03
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多