文本编辑器中用户提交的超链接用引号分隔



我运行一个wordpress工作板,用户可以在上面发布职位列表,职位描述输入使用tinyMCE。

问题:当一些用户将超链接插入到他们的列表主体时,该链接在发布的广告中断开,插入了一些添加的引号,例如:http://example.com/en变成了" "//example.com/en/" " "这种情况偶尔会发生,但不是每个广告都这样,也不是广告中的每个链接都这样。

我最近发现,似乎正在发生的事情是以下字符%E2%80%9D被插入到链接中,这些编码双引号。假设我的站点上发布链接的页面是https://example.org/mypage/,而用户试图发布的链接是https://usersite.com/theirpage/,那么结果URL将是两者的某种奇怪的混搭:

https://example.org/mypage/%E2%80%9D/usersite.com/theirpage/

从一些谷歌搜索看来,这可能是由于用户从单词或网页复制/粘贴超链接造成的。

我正试图找到一种方法来自动防止这种情况,这样我就不必每天手动清理数十个链接。我想一定有什么东西我可以改变在tinyMCE设置。

我发现了几年前看似相关的问题,建议它可能与魔术引号(example1 example2)有关,但我不知道如何实现所提出的解决方案,因为我不是php专业人士。

你将如何解决这个wordpress网站?任何建议将不胜感激!

您的问题发生是因为用户从Word插入带有双引号(")的内容,但它们不是您的标准双引号。

标准:"(直)

非标准:"(在一个角度上)

您插入的编码(%E2%80%9D)表示无法解析(理解)的字符,并且编码已用于通过数据库和web服务器传输该字符。这种编码提供了一个角(")上的双引号。

在JavaScript中,这种编码的解码如下所示:

decodeURI('%E2%80%9D')
”

我认为这不是TinyMCE的问题。

如何解决这个问题?

有一些解决方案,它们将需要一些开发知识。想到的两个安全选项是:

  1. 在内容存储之前,使用PHP字符串replace
  2. 删除这些字符
  3. 如果问题是用户如何插入内容到TinyMCE,它可能是值得添加TinyMCE链接检查器(https://www.tiny.cloud/tinymce/features/link-checker)。注意,这是一个高级功能。

免责声明,我隶属于Tiny。以上是我个人的评论

最新更新