17

いくつかの html (フォーム要素とテーブル要素) を生成するクラスがありますが、このクラスはすべての html を 1 行で返します。

そのため、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 に指示する方法があると本当に思っていました。

4

1 に答える 1

38

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オプションと組み合わせることができます。この場合、空の入力要素にスラッシュが追加されます。

于 2009-12-26T14:24:57.717 に答える