【问题标题】:Apart from PHP or JavaScript is there any escape character for browsers?除了 PHP 或 JavaScript 之外,浏览器是否有任何转义字符?
【发布时间】:2014-08-22 18:00:07
【问题描述】:

我有一个隐藏字段,用于存储从数据库中检索到的值,如下所示:

echo '<input type="hidden" value="'.$str.'">';

问题是如果 $str 包含带有双引号的文本,它肯定会导致浏览器相应地显示问题。但是在 PHP 中使用转义字符 \ 是徒劳的。我也试过这个:

$str = str_replace('"',"'",$str);

然后我必须在客户端将每个单引号替换为双引号(做相反的操作):

str = str.replace(/'/g,'"');

虽然它对我来说很好,但它仍然没有消除错误。例如,如果数据库中的原始字符串包含单引号 (') ,它也会在客户端被双引号 (") 替换,这是出乎意料的。那么,是否有任何替代解决方案来解决这个问题,或者真的有浏览器的转义字符可以放在隐藏字段的双引号中吗?

【问题讨论】:

  • " 变为 &amp;quot;htmlspecialchars()
  • 那么我现在该怎么办@Brad
  • 谢谢你,布拉德……我已经明白了……再次感谢!!
  • 你也可以base64_encode()它。它与 HTML 编码的东西有相同的缺点,因为您可能需要在某些时候再次对其进行解码,但它应该可以正常工作。

标签: javascript php html


【解决方案1】:

你可以使用 htmlentities 来转义值

http://php.net/manual/en/function.htmlentities.php

例如

echo '&lt;input type="hidden" value="'.htmlentities($str).'"&gt;';

【讨论】:

    猜你喜欢
    • 2011-03-19
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多