php tidy textarea带有HTML格式的文本

时间:2012-07-29 14:33:09

标签: php html textarea

我正在使用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

1 个答案:

答案 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;

你只是按照我想的错误顺序组装东西。

<强>未测试