使用严格的XHTML验证textarea中的示例代码片段

时间:2011-10-15 15:41:35

标签: validation xhtml textarea strict

我目前正在尝试在严格的XHTML文档中在textarea中发布一些代码片段。我不能为我的生活得到这些片段通过验证。我有一个完美的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标签显示在文本区域中!

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您希望form-Tag是textarea的内容,只需编码&lt; as&amp; lt; “as&amp; quot;&amp; as&amp; amp; and&gt; as&amp; gt;:

<?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>