我需要使用 WYSIWYG 编辑器保存来自 textarea 的 HTML 内容的“普通”版本。现在我在保存到数据库之前使用以下函数:
public function preUpdate(PreUpdateEventArgs $event)
{
if (($resource = $event->getEntity()) instanceof Resource) {
$resource->setPlainContent($this->computePlainContent($resource));
}
}
protected function computePlainContent(Resource $resource)
{
return preg_replace(
'/\s+/',
' ',
html_entity_decode(
strip_tags($resource->getContent()),
ENT_QUOTES | ENT_HTML401
)
);
}
纯文本将用于在页面之间进行搜索。
问题:
- 这是好的/安全的**,假设编辑器将始终生成有效的 HTML?
- 你会删除标点符号吗?如何?
- 我应该使用CKEditor
ENT_HTML401
还是ENT_XHTML
使用 CKEditor(默认配置,不知道输出质量)?
** 为了安全,我的意思是安全地产生良好的输出。用户(本系统)是受信任的。