【问题标题】:CKEditor URL is appended to my working directoryCKEditor URL 附加到我的工作目录
【发布时间】:2016-06-21 20:22:01
【问题描述】:

我正在使用 CKEditor 来获得所见即所得的体验,并且我已经启用了在其中创建 URL 的功能。

提交表单后,我在将数据保存到数据库之前使用此代码:

$description = htmlentities($_POST['description'], ENT_QUOTES, "UTF-8", false);

当我查看数据库时,我可以看到数据是这样保存的:

<a href="http://google.com"><em>Google</em></a></p>

对我来说这似乎是正确的,并且编码没有问题?当然,除非我错了,而且我正在做我不应该做的事情。

现在,当我在网页中显示数据时,我得到了奇怪的结果。我在显示数据时采用了两种方法,每种方法都解决了一个问题,但又产生了一个新问题。为了说明,请看一下我的两种方法:

第一种方法

由于我在保存到数据库之前使用 ENT_QUOTES 对其进行了编码,因此使用相同的方法对其进行解码对我来说是有意义的。

html_entity_decode($data['description'], ENT_QUOTES, "UTF-8");

我使用这种方法遇到的问题是带有重音符号 (ñå) 的字符无法正确显示。但这解决了我将 URL 附加到我的工作目录的问题。

第二种方法

html_entity_decode(utf8_decode($data['description']), ENT_XML1, "UTF-8");

这个解决了我的重音字符问题,但它破坏了 URL,而不是正确打开它尝试打开类似 http://example.com/my/working/directory/%22http://google.com%22 的东西。

请注意,我对字符编码的概念不太熟悉,所以如果我在做不应该做的事情,请不要苛刻。

【问题讨论】:

    标签: php url encoding ckeditor html-entities


    【解决方案1】:

    我能够通过结合这两种解决方案来解决问题:

    html_entity_decode(utf8_decode($data['description']), ENT_QUOTES | ENT_XML1, "UTF-8");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 2012-11-05
      • 1970-01-01
      相关资源
      最近更新 更多