2 つのテキストエリアと送信ボタンを含む html フォーム ページ (test.php) があります。毎回フォーマットしてハードコーディングしたいソースコードをコピーする代わりに、最初のテキストエリアを作成して、クリーンアップするコードをそこにコピーできるようにしました。次に、送信ボタンを押すと、フォームが同じページに投稿され、2 番目のテキスト領域に整理されたソース コードが表示されます。この整頓されたソースコードを表示することが問題です。 次のコードを HTML tidy で渡し、出力をテキストエリアに表示しようとすると、出力表示が壊れます。つまり、気がつけば私は</textarea>
次のhtmlコードの内部。Tidy がそれに遭遇するとすぐに、テキストエリアを閉じ、ソース コードの残りの情報を HTML ドキュメントの一部であるかのように解析し、それによって HTML フォーム ページ全体 (test.php) を壊します。
HTML TIDY に渡しているサンプル ソース コード:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hi</title>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<h1 data-title="Hi"> <a href="<?php echo $_SERVER['PHP_SELF']; ?>"> Hi </a> </h1>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<textarea name="comments" id="comments" cols="150" rows="15"><?php echo (isset($_POST['comments']) ? $_POST['comments'] : '' ); ?></textarea>
<br>
<input type="submit" name="sbt_process" id="sbt_process" value="Submit">
</form>
<textarea name="css" id="css" cols="150" rows="18"><?php echo (isset($text) ? $text : ''); ?></textarea>
</div><!-- #wrapper -->
</body>
</html>
HTML TIDY パラメータ:
$params_body = array(
'break-before-br' => 'no',
'clean' => 'clean',
'doctype' => 'strict',
'drop-empty-paras' => 'yes',
'drop-font-tags' => 'yes',
'force-output' => 'yes',
'indent' => TRUE, //'yes',
'indent-attributes' => FALSE,
'indent-spaces' => 4,
'input-encoding' => 'utf8',
'join-styles' => 'yes',
'literal-attributes' => 'yes', //This option specifies if Tidy should ensure that whitespace characters within attribute values are passed through unchanged.
'logical-emphasis' => 'yes',
'lower-literals' => 'yes',
'merge-divs' => 'no',
'merge-spans' => 'yes',
'output-encoding' => 'ascii',
'output-xhtml' => 'yes',
//'output-xml' => true,
'output-bom' => 'no',
'preserve-entities' => 'yes',
'quiet' => 'yes',
'quote-ampersand' => 'yes',
'quote-marks' => 'no',
'quote-nbsp' => TRUE,
'show-body-only' => FALSE,
'show-errors' => 0,
'show-warnings' => 0,
'sort-attributes' => 'alpha',
'vertical-space' => TRUE, //'yes',
'wrap' => 0, //This option specifies the right margin Tidy uses for line wrapping. Tidy tries to wrap lines so that they do not exceed this length. Set wrap to zero if you want to disable line wrapping.
'wrap-attributes' => FALSE,
'tab-size' => 20, //This option specifies the number of columns that Tidy uses between successive tab stops. It is used to map tabs to spaces when reading the input. Tidy never outputs tabs.
'wrap-php' => 0,
'wrap-script-literals' => TRUE,
'escape-cdata' => TRUE,
'indent-cdata' => TRUE,
'numeric-entities' => FALSE,
'fix-uri' => FALSE,
'markup' => TRUE
);
私はphp tidyのさまざまなパラメータをいじっていますが、役に立ちません。XMLとして出力しようとさえしましたが、それは役に立ちませんでした。</textarea>
きれいにしようとしているソースコードのタグを壊したり解析したりせずに、Tidy にきれいにされたソースコードを 2 番目のテキストエリアに正しく表示させるにはどうすればよいですか?