代码之家  ›  专栏  ›  技术社区  ›  Andy Groff

是否有一个PHP配置会自动转义双引号?

php
  •  1
  • Andy Groff  · 技术社区  · 15 年前

    我想知道是否有人知道PHP设置会自动转义双引号。

    我的问题是,在本地服务器上,我正在将此字符串发布到服务器:

    {"0":{"id":"19","goal":"34"},"1":{"id":"22","goal":"657675"},"2":{"id":"21","goal":"456"}}
    

    而且效果很好。但是,在生产服务器上,我发布了相同的字符串,当我回显它时,它更改为:

    {\"0\":{\"id\":\"19\",\"goal\":\"34\"},\"1\":{\"id\":\"22\",\"goal\":\"657675\"},\"2\":{\"id\":\"21\",\"goal\":\"456\"}}
    

    我设法用string_replace()调用修复了它,但我想知道为什么会发生这种情况。生产服务器和本地服务器正在使用相同的代码,并且已更新为使用相同的数据,因此我假设离散性一定是由服务器设置引起的,但我从未听说过这样的设置。

    有人经历过这样的事情吗?

    3 回复  |  直到 15 年前
        1
  •  11
  •   Mike Caron    15 年前

    对。这叫做神奇语录:

    http://php.net/manual/en/security.magicquotes.php

    http://php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc

    通常需要关闭此选项,并根据需要手动处理转义。

        2
  •  2
  •   jocull    15 年前

    这是一个典型的问题与“魔术语录”。他们是邪恶的,我。你 should disable them 如果可能的话。

    它们是为了保护您免受SQL注入攻击,因此在禁用它们之后要小心。

        3
  •  -3
  •   John Giotta iaforek    15 年前

    您可以尝试在发布的数据中使用单引号,而不是双引号

    推荐文章