1

我需要使用 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?
  • 你会删除标点符号吗?如何?
  • 我应该使用CKEditorENT_HTML401还是ENT_XHTML使用 CKEditor(默认配置,不知道输出质量)?

** 为了安全,我的意思是安全地产生良好的输出。用户(本系统)是受信任的。

4

0 回答 0