我正在使用Javascript来生成HTML编码的textarea,这可以正常存储到SQL数据库中。还行吧。但是当我想将它输出回textarea再次进行编辑时,php-tidy将结束textarea标签移动到内容之前,因此实际将内容放在textarea标签之后。只有当内容与HTML标签格式化时才会发生这种情况,但这些都需要生成格式化我需要生成HTML格式化的电子邮件等等。当我禁用PHP时 - 所有工作正常只需HTML代码完全混乱
如果有人要求PHP-tidy忽略代码的某些部分或者免除textarea被PHP-tidy解析那将是很好的。
我的代码很简单
//来自数据库的内容
$message = stripslashes($database['message']);
$buffer = "<textarea id=\"elm1\" name=\"message\" cols=\"70\" rows=\"20\">$message</textarea>";
$config = array('indent' => TRUE,
'doctype' => "strict",
'output-xhtml' => TRUE,
'wrap' => 300);
$tidy = tidy_parse_string($buffer, $config);
$tidy->cleanRepair();
echo $tidy;
如果邮件没有HTML内容,则格式正常
php tidy禁用它就像是,格式化不太好但是按照我的预期工作
<textarea id="elm1" name="Message" cols="70" rows="20"><p>this is a full html email.</p>
<p>little formatting </p>
<p><span style="color: #ff0000;">different colour text</span></p>
<p>and normal</p></textarea>
php tidy enabled
<textarea id="elm1" name="Message" cols="70" rows="20">
</textarea>
<p>
this is a full html email.
</p>
<p>
little formatting
</p>
<p>
<span style="color: #ff0000;">different colour text</span>
</p>
<p>
and normal
</p>
我想启用PHP-tidy,但仍然有我期望的结果
由于
Vip32
答案 0 :(得分:0)
$message = stripslashes($database['message']);
// DO the tidy before interpolating with
// the html of your form element
$config = array('indent' => TRUE,
'doctype' => "strict",
'output-xhtml' => TRUE,
'wrap' => 300);
$tidy = tidy_parse_string($message, $config);
$tidy->cleanRepair();
// now insert it into the correct place
$buffer = "<textarea id=\"elm1\" name=\"message\" cols=\"70\" rows=\"20\">$tidy</textarea>";
echo $buffer;
你只是按照我想的错误顺序组装东西。
<强>未测试强>