写入文件时停止PHP转义JSON字符串
我试图使用JQuery和PHP保存对JSON文件的更改,但似乎我的PHP脚本在保存JSON时正在转义字符,这意味着我无法再次读取它 我使用以下代码将JSON对象('family')传递到save.php:写入文件时停止PHP转义JSON字符串,php,jquery,ajax,json,escaping,Php,Jquery,Ajax,Json,Escaping,我试图使用JQuery和PHP保存对JSON文件的更改,但似乎我的PHP脚本在保存JSON时正在转义字符,这意味着我无法再次读取它 我使用以下代码将JSON对象('family')传递到save.php: function saveChanges() { $.ajax({ type: "POST", url: "save.php", data: { data: JSON.stringify(family)
function saveChanges() {
$.ajax({
type: "POST",
url: "save.php",
data: {
data: JSON.stringify(family)
},
success: function(msg){
console.log(data);
}
});
}
然后save.php使用以下代码将JSON数据写入armstrong.JSON
<?php
$data = $_POST["data"];
echo $data;
$filename = 'armstrong.json';
if (is_writable($filename)) {
if (!$handle = fopen($filename, "w")) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, parse_json($data)) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($data) to file ($filename)";
fclose($handle);
} else {
echo "The file $filename is not writable";
}
?>
有没有办法阻止它逃离角色?JSON文件应该如下所示
{
"title" : "Armstrong",
"description" : "The Armstrong Family",
"patriarchID" : "id1",
"latestID" : 7,
"members" : [
{
"name" : "Grandad",
"id" : "id1",
"children": ["id2","id3"]
},
{
"name" : "Dad",
"id": "id2",
"children": ["id4","id5","id6","id7"]
},
{
"name" : "Uncle",
"id" : "id3"
},
{
"name" : "Child",
"id" : "id4"
},
{
"name" : "Child",
"id" : "id5"
},
{
"name" : "Child",
"id" : "id6"
},
{
"name" : "Child",
"id" : "id7"
}
]
}
也许您已经在php.ini中打开了。你应该关掉它们。这可以解释逃跑的原因
编辑-如果您需要了解更多有关魔术引号的信息,请阅读。魔法引号是不好的,如果你有权访问php.ini,你应该将其关闭你已经启用了
Magic\u-quotes\u-gpc
并且斜杠在你执行$data=$\u-POST['data']
时已经存在
看看这个答案:
顺便说一句,您可以将fopen/fwrite/fclose替换为外观相关:php代码中的
parse_json
是什么?这不是一个内置的php函数…听起来很有趣,我会怎么做,它会影响其他任何事情吗?如果你需要了解更多关于魔术引号的知识[请阅读这里]。魔术引号是不好的,如果你有权访问你的php.ini,你应该关闭它们,这似乎是问题所在。现在调查一下,谢谢!谢谢,我没有看到其他问题,但它成功了!
{
"title" : "Armstrong",
"description" : "The Armstrong Family",
"patriarchID" : "id1",
"latestID" : 7,
"members" : [
{
"name" : "Grandad",
"id" : "id1",
"children": ["id2","id3"]
},
{
"name" : "Dad",
"id": "id2",
"children": ["id4","id5","id6","id7"]
},
{
"name" : "Uncle",
"id" : "id3"
},
{
"name" : "Child",
"id" : "id4"
},
{
"name" : "Child",
"id" : "id5"
},
{
"name" : "Child",
"id" : "id6"
},
{
"name" : "Child",
"id" : "id7"
}
]
}