所见即所得富文本编辑器Textarea显示错误
WYSIWYG Rich Text Editor Textarea show wrong
// Filter Function -------------------------------------------------------------------
function filterFunction ($var) {
$var = nl2br(htmlspecialchars($var));
$var = str_replace("/", "\\", $var);
$var = preg_replace("~/~", "\\", $var);
return $var;
}
如果我尝试编辑一些文本,我的 CMS 有问题,如果我尝试编辑 h2
,最后会给我一些 </h2>
和 </p>
。
我认为问题出在这里,但如何解决?
根据您提供的示例,问题似乎出在这两行:
$var = str_replace("/", "\\", $var);
$var = preg_replace("~/~", "\\", $var);
第一行说用双反斜杠替换所有正斜杠。所以 </h2>
变成 <\h2>
。第二行做同样的事情,但是因为你做了两次 </h2>
变成了 <\h2>
.
删除这些行将解决您的问题。但如果你是有意这样做的,也许你可以澄清原因,或者你到底想达到什么目的。也许有更好的方法。
// Filter Function -------------------------------------------------------------------
function filterFunction ($var) {
$var = nl2br(htmlspecialchars($var));
$var = str_replace("/", "\\", $var);
$var = preg_replace("~/~", "\\", $var);
return $var;
}
如果我尝试编辑一些文本,我的 CMS 有问题,如果我尝试编辑 h2
,最后会给我一些 </h2>
和 </p>
。
我认为问题出在这里,但如何解决?
根据您提供的示例,问题似乎出在这两行:
$var = str_replace("/", "\\", $var);
$var = preg_replace("~/~", "\\", $var);
第一行说用双反斜杠替换所有正斜杠。所以 </h2>
变成 <\h2>
。第二行做同样的事情,但是因为你做了两次 </h2>
变成了 <\h2>
.
删除这些行将解决您的问题。但如果你是有意这样做的,也许你可以澄清原因,或者你到底想达到什么目的。也许有更好的方法。