【问题标题】:PHP code adding backslash before forward slash [duplicate]PHP代码在正斜杠之前添加反斜杠[重复]
【发布时间】:2017-05-12 17:26:21
【问题描述】:

我的路径存储在 MySQL 数据库中。 示例

dir1/dir2/img1.jpg

当我运行这个函数时

$stmt = $this->con->prepare("SELECT path FROM walls WHERE category = ?");
            $stmt->bind_param("s", $cat);
            $stmt->execute();
            $stmt->bind_result($path);
            while($stmt->fetch()) {                 
                $url[] = $path;

            }
            echo json_encode($url);

它返回,

[[],"dir1\/dir2\/img1.jpg"]

不知道为什么反斜杠在正斜杠之前加起来。

【问题讨论】:

  • 这是一个 JSON 问题:stackoverflow.com/a/10314758/1220930
  • 你想从json_encode()得到什么类型的输出?任何支持 JSON 作为输入的东西都应该处理转义的斜杠。

标签: php mysql


【解决方案1】:

JSON 默认转义所有特殊字符。解码后得到原值dir1/dir2/img1.jpg

您可以使用JSON_UNESCAPED_SLASHES 来跳过转义斜线,并且从 PHP 5.4.0 开始提供

echo json_encode($url, JSON_UNESCAPED_SLASHES);

【讨论】:

    【解决方案2】:

    问题出在您的json_encode 代码上,为此目的使用以下代码,

    json_encode($url,JSON_UNESCAPED_SLASHES);
    

    【讨论】:

      【解决方案3】:

      你可以使用

      echo json_encode($url, JSON_UNESCAPED_SLASHES);
      

      这不会在目录路径中转义斜杠。

      【讨论】:

        猜你喜欢
        • 2017-11-30
        • 1970-01-01
        • 2016-06-16
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-27
        • 2019-01-13
        相关资源
        最近更新 更多