【问题标题】:Remove empty tags in Imperavi Redactor删除 Imperavi Redactor 中的空标签
【发布时间】:2014-12-08 05:48:07
【问题描述】:

将 Imperavi Redactor 与 Yii 2 框架结合使用。

当没有输入文本时,Imperavi Redactor 会生成以下标记:<p><br></p>。 对于每个换行符,也会附加此标记。

我想删除它,因为无法正常使用RequiredValidator 验证此类内容。 我想在beforeValidate() 事件中删除并检查是否输入了任何文本。 如果除了空标签、空格和换行符之外没有文本,则不允许保存。 否则内容应以初始状态保存。

它可以在preg_replace 的帮助下实现,但我不确定它是否是 Redactor 生成的唯一变体。即使它是唯一的变体,这种解决方案在切换选项(例如将paragraphize 选项设置为false)、更新或将所见即所得(WYSIWYG)更改为 TinyMCE 或 CKEditor 的情况下也不可靠。

例如,如果是<p><br/></p><p> </p>,则正则表达式将失败。 我也想要修剪空格,例如<p> <br></p>

Redactor 中是否有执行此操作的选项? removeEmpty 选项没有帮助。

我尝试了带有AutoFormat.RemoveEmpty 选项的HTML Purifier,结果是<p><br/></p>(对于内容<p></br></p>)。也许我们需要指定自定义模式或标签列表,具体应该在段落中删除什么。

【问题讨论】:

    标签: php wysiwyg yii2 htmlpurifier redactor


    【解决方案1】:

    找到了这个解决方案:

    use yii\helpers\HtmlPurifier;
    
    $text = HtmlPurifier::process($model->text, [
        'HTML.ForbiddenElements' => ['p', 'br', ' '],
    ]);
    

    【讨论】:

      猜你喜欢
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 2014-04-16
      相关资源
      最近更新 更多