“ghosts”斜杠,将项添加到json文件中?我该怎么办?

时间:2013-11-03 16:58:28

标签: php json redactor

这是我原来的json文件

data.json (之前)

[
{ "thumb": "../userfiles/img/min/m_1.jpg", "image": "../userfiles/img/1.jpg", "title": "Image 1", "folder": "Folder 1" },
{ "thumb": "../userfiles/img/min/m_2.jpg", "image": "../userfiles/img/2.jpg", "title": "Image 2", "folder": "Folder 1" },
{ "thumb": "../userfiles/img/min/m_3.jpg", "image": "../userfiles/img/3.jpg", "title": "Image 3", "folder": "Folder 1" },
{ "thumb": "../userfiles/img/min/m_4.jpg", "image": "../userfiles/img/4.jpg", "title": "Image 4", "folder": "Folder 1" },
{ "thumb": "../userfiles/img/min/m_5.jpg", "image": "../userfiles/img/5.jpg", "title": "Image 5", "folder": "Folder 1" }
]

这是我的php文件,它为文件data.jon

添加了一个元素

add_json.php

<?
$dir_thumb  = '../userfiles/img/thumb/6_m.jpg';
$dir_img    = '../userfiles/img/6.jpg'; 
$title      = 'img_6';     
$tipo_image = 'news';

$json        = file_get_contents('data.json');
$data        = json_decode($json);

$data[]     = array(
             'thumb'=>  $dir_thumb,
             'image'=>  $dir_img,
             'title'=>  $title,
             'folder'=> $tipo_image         
        );
file_put_contents('data.json', json_encode($data));
?>

这是生成的文件data.json

data.json (执行文件add_json.php后)

[   
{"thumb":"..\/userfiles\/img\/min\/m_1.jpg","image":"..\/userfiles\/img\/1.jpg","title":"Image 1","folder":"Folder 1"},
{"thumb":"..\/userfiles\/img\/min\/m_2.jpg","image":"..\/userfiles\/img\/2.jpg","title":"Image 2","folder":"Folder 1"},
{"thumb":"..\/userfiles\/img\/min\/m_3.jpg","image":"..\/userfiles\/img\/3.jpg","title":"Image 3","folder":"Folder 1"},
{"thumb":"..\/userfiles\/img\/min\/m_4.jpg","image":"..\/userfiles\/img\/4.jpg","title":"Image 4","folder":"Folder 1"},
{"thumb":"..\/userfiles\/img\/min\/m_5.jpg","image":"..\/userfiles\/img\/5.jpg","title":"Image 5","folder":"Folder 1"},
{"thumb":"..\/userfiles\/img\/thumb\/6_m.jpg","image":"..\/userfiles\/img\/6.jpg","title":"img_6","folder":"news"}  
]

我该怎么做才能删除反斜杠?谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

您可以使用JSON_UNESCAPED_SLASHES json_encode选项阻止{{1}},the documentation

但请注意,这只是PHP过度杀伤。 JSON仍然有效,并且字符串完全与它们相同的字符序列,没有不必要的转义字符。

答案 1 :(得分:1)

你不需要删除那些反斜杠,它们只是转义字符。

在读取JSON格式的字符串后,\/的这些序列将自动转换为/

答案 2 :(得分:1)

你拥有的是完全有效的JSON,但是如果要删除它,你可以使用JSON_UNESCAPED_SLASHES常量:

file_put_contents('data.json', json_encode($data, JSON_UNESCAPED_SLASHES));