2013-11-22 113 views
0

我有一个json文件,我试图追加数据。使用PHP追加json文件

json文件内容如下所示。

{ 
    "KEYOP": ["01KEYOPS","23016/scripts/3rdParty/pusher-chat/assets/cobain.jpg"] 
} 

下面是我add_user.php

<?php 

$sentArray = $_POST['dataString1']; 
$boxArray = file_get_contents('results.json'); 

$sentdata = json_decode($sentArray); 
$getdata = json_decode($boxArray); 


foreach($sentdata as $value) 
    $getdata[] = $value; 

print_r($getdata); 
?> 

及以下就是我试图将数据发送到服务器

var myObj = {foo: "bar", "baz": "wockaflockafliz"}; 
         var jsonString = JSON.stringify(myObj, null, 2); 
         $.ajax({ 
         type: "POST", 
         url: "23016/scripts/3rdParty/pusher-chat/server/add_user.php", 
         data: { 'dataString1': jsonString }, 
         cache: false, 
         success: function(response) 
         {    
          alert(response); 
         } 
         }); 

随附的JSON我的jQuery脚本文件应该看起来像这样。

{ 
    "KEYOPS01!": ["01 KEYOPS","23016/scripts/3rdParty/pusher-chat/assets/cobain.jpg"], 
    foo: "bar", 
    "baz": "wockaflockafliz" 
} 

每当我尝试合并数据时,都会收到500内部服务器错误。

+0

查看服务器日志以获取有关500的更多详细信息。 –

+0

您是否尝试过逐条评论每一行以尝试确定哪一项可以为您提供500?如果你直接在浏览器中调用PHP,你会得到什么? boxArray的内容是什么?这是你期望的吗? $ getdata和$ sentdata的内容是什么?他们是你期望的吗? –

+0

我是一个新的Php.Where我会找到日志?在网络服务器上? PHP的安装文件夹? – premkris

回答

0

检查日志,但是,如果你要合并的2列($ sentdata美元的GetData),你应该使用类似array_merge()

http://php.net/manual/es/function.array-merge.php

与此:

foreach($sentdata as $value) 
    $getdata[] = $value; 

你正在失去你的钥匙(和慢)

,顺便......你的附加JSON是不是有效的JSON ...

+0

数组我是tryi ng发送是一个测试,假设我想发送“ALAMBRECHT”:[“AMBER LAMBRECHT”,“23016/scripts/3rdParty/pusher-chat/assets/cobain.jpg”],这正是JSON文件之前的方式添加我的var myObj将是var myObj = {“ALAMBRECHT”:'[“AMBER LAMBRECHT”,“23016/scripts/3rdParty/pusher-chat/assets/cobain.jpg”]'};对? – premkris

+0

伟大的工作。 $ result = array_merge((array)$ sentdata,(array)$ getdata); print_r($ result); $ file = fopen('results。json','w +'); fwrite($ file,json_encode($ result)); fclose($ file); – premkris

+0

很好听它的工作.... –