2011-10-15 30 views
0

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

任何想法?

回答

1

如果你想form-Tag是textarea的内容,只需编码<为& lt; “为& QUOT; &为&安培;以及>为&计算值:

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