【问题标题】:Htmlentities Encode and specific DecodeHtmlentities Encode 和特定的 Decode
【发布时间】:2013-10-29 18:21:55
【问题描述】:

我创建了一个博客,人们可以在其中使用脚本代码创建帖子。 所以我在上传过程中通过htmlentities($string) 中的帖子字符串并将其保存到数据库中。现在,这项工作但仅适用于脚本代码。 我来解释一下:

如果我发布这个:

Letter: è ò à ù funzionerà

Script:

<script>alert('tornerò, arriverà')</script>

返回:

Letter: è ò à ù funzionerà 

Script:

<script>alert('tornerò, arriverà ')</script>

我尝试使用html_entity_decode($string),但它会解码所有字符串,并且脚本会消失(显然)

我怎样才能只解码“特殊字符”?我认为 str_replace 只解码那些字符,但我正在寻找更快的方法,如果它存在的话!?

【问题讨论】:

  • “返回”情况是否从数据库向博客网页发送文本?另外,是否涉及 AJAX?

标签: php html-entities html-encode html-escape-characters


【解决方案1】:

这可能不是理想的答案,但我建议您查看一下您的“输出文件”编码、数据库编码和元字符集。我有几个挪威、瑞典和丹麦的网站。没有编码和解码的东西都可以正常工作。

【讨论】:

  • 如果我使用 htmlspecialchars() 而不是 htmlentities()?可能发生哪些原因?
  • htmlsepcialchars 与您想要的相反。它只替换 & ' 和 ""。这是非常重要的 HTML 实体。那里有这样做的功能,所以我不能作为代码处理。
  • 其实,我唯一担心的是防止脚本注入,更重要的是,保持特殊字符的可读性。所以,此时 htmlspecialchars() 是最好的方法。
  • 我不想听起来像一个完整的垃圾袋,但防止 SQL 注入的唯一完全合法的方法是使用 mysqli/pdo mysql 转义系统进行转义。只是想让你知道:-)
  • 我已经使用 mysql_real_escape_string 上传字符串,但在调用时返回空字符串并启动脚本(例如 )。有更清洁的系统吗?
猜你喜欢
  • 2011-06-28
  • 1970-01-01
  • 2016-03-02
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 2018-12-16
  • 1970-01-01
相关资源
最近更新 更多