【问题标题】:How to validate rich text editor source如何验证富文本编辑器源
【发布时间】:2015-05-29 19:53:39
【问题描述】:

我在我的应用程序中使用CLEditor 来获取用户将填写的富文本。

当我在我的 PHP 服务器端脚本中验证 textarea 元素时,我会进行所有检查,例如如果元素为空。

这样做的一个问题是,尽管文本已被清除,但有时文本编辑器的源代码仍然存在。

这是我的意思的一个例子:

假设我有一个如下所示的富文本编辑器,并且我的标题是“写你的第一页!”。

以下是源查找上图的方式:

然后,当我只删除文本而不是任何剩余的空行时,文本周围的源仍然如下所示:

PHP empty 函数不会通过,因为它在技术上不是空的,因为文本编辑器中包含源代码。

问题是我不能依靠用户来清除包括空行在内的整个屏幕,所以有没有办法可以摆脱任何不包含实际内容的来源,如上面的第二张图片所示?

HTML:

<textarea id="textarea" name="chapter"><h4 style="text-align: center;">Write your first page!</h4></textarea>

【问题讨论】:

  • 对不起,但我真的认为这是真正正确的用户输入。您可能知道 value 是否为空,但您不知道它的 html 标签是否为空。我认为没有解析 html 条目是不可能的
  • 你可能会看到..编辑也不知道。如果他知道 html 标记为空,则将其删除
  • 是的,用户输入没问题,但问题是 html 标签。如果我对上面的内容执行if(empty($_POST['chapter']){...},它将始终返回 false,因为它包含 html 标签但其中没有实际内容。那么有没有办法解决这个问题?

标签: php html wysiwyg rich-text-editor


【解决方案1】:

如果我理解你的问题,你想知道是有一些文本还是只是 HTML 标签。

在 PHP 中,您可以执行以下操作:

$text = trim(strip_tags($chapter));
if ($text == ''){
   // just HTML tags
}

strip_tags 函数删除 HTML 标记。

trim 功能删除空格、换行等...

【讨论】:

  • 是的! strip_tags 完成了这项工作。谢谢!
  • 请注意,如果编辑器仅包含非文本 HTML 数据,这将表明编辑器是“空的”。例如,一张图片。
  • @duskwuff 我可以使用可选的第二个参数来允许某些标签,例如strip_tags($chapter,"&lt;img&gt;")
猜你喜欢
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多