0

現在、厳密な XHTML ドキュメント内のテキストエリア内にいくつかのコード スニペットを投稿しようとしています。私の人生では、これらのスニペットが検証に合格することはできません。私は、次の完全な xhtml 厳密ドキュメントを持っています。

<textarea rows="10" cols="80">
    <form method="post" action="<?=$_SERVER['PHP_SELF']?>">
</textarea>

私が試した(私が想定していることは)<![CDATA[タグのすべての可能な組み合わせは無駄です。

以下を含む:

<textarea rows="10" cols="80">
    <![CDATA[
        <form method="post" action="<?=$_SERVER['PHP_SELF']?>">
    ]]>
</textarea>

これは機能します。ただし、cdata タグはテキスト領域に表示されます。

何か案は?

4

1 に答える 1

1

form-Tag を textarea のコンテンツにしたい場合は、< を < として単純にエンコードします。" as " & as & and > as >:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="de">
<head>
    <title>Test</title>
</head>
<body>
<p>
<textarea rows="10" cols="80">
    &lt;form method=&quot;post&quot; action=&quot;<?=$_SERVER['PHP_SELF']?>&quot;&gt;
</textarea>
</p>
</body>
</html>

PHP でエンコードを行うことができます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="de">
<head>
    <title>Test</title>
</head>
<body>
<p>
<textarea rows="10" cols="80">
    <?php
    $html = <<<HTML
<form method="post" action="{$_SERVER['PHP_SELF']}">
HTML;
    echo htmlspecialchars($html);
    ?>
</textarea>
</p>
</body>
</html>
于 2011-10-15T21:34:19.967 に答える