2016-12-28 166 views
0

我有存储在MySQL数据库中的路径。 例PHP代码在正斜杠前添加反斜杠

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"] 

不知道为什么反斜杠前添加了斜杠。

+0

这是一个JSON问题:http://stackoverflow.com/a/10314758/1220930 – Timurib

+0

做什么类型的输出你想从'json_encode()'?任何支持JSON作为输入的应用都应该处理转义斜线。 –

回答

1

JSON默认转义所有特殊字符。在解码时,你会得到原始值dir1/dir2/img1.jpg

您可以使用JSON_UNESCAPED_SLASHES跳过逃避斜线,并提供自PHP 5.4.0

echo json_encode($url, JSON_UNESCAPED_SLASHES); 
1

您可以使用

echo json_encode($url, JSON_UNESCAPED_SLASHES); 

这不会逃脱在目录路径中斜线。

1

问题是与你的json_encode代码,使用此下面的代码为目的,

json_encode($url,JSON_UNESCAPED_SLASHES);