2013-11-22 115 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

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