2012-11-19 43 views
0

我正在寫一些簡單的PHP來接收來自另一個具有JSON負載的系統的POST。該請求是Content-Type:application/json。PHP - 接收POST JSON的麻煩

我只是試圖轉儲JSON到一個txt文件爲起點,但這沒有發生。這裏是PHP文件,任何建議/更正將不勝感激!

<?php 
    ini_set("display_errors", "On"); 
    session_start(); 

    $raw_json = file_get_contents('php://input'); 
    $cooked_json = json_decode($raw_json); 


    $myfile = fopen('/home/wgordon/log.txt','a'); 
    $fp = fwrite($myfile, $cooked_json); 
    fclose($myfile); 

?>

+0

是通過Ajax? – Digitalis

+0

POST請求?它可能會使用Ajax,我無法控制該部分,但如果這是我在請求中可以看到的內容,請通知我,我會查看一下 –

+0

如果是這樣,問題可能是您沒有使用發佈。你有沒有試過傾銷郵件的輸出? – Digitalis

回答

2

從它的外觀,爲$ raw_json初始值將是一個字符串。當你嘗試以數組的形式訪問它時,你只會得到一個更小的字符串。當你將它傳遞給json_decode時,它可能會返回null。

您需要檢查$ raw_json的是第一個值。如果它是未來作爲名稱/值對的查詢字符串,你需要對它進行解碼(採用分體式()或類似的東西),然後才能把它像一個數組

+0

同意,這似乎是問題。不過,我不確定file_get_contents中的URL。或者是一個佔位符? – Digitalis

+1

這是一個IO流。通常用於從PUT請求獲取數據,因爲它們不通過$ _REQUEST – chriswoodford

+0

啊,好吧。我不知道。我很抱歉。 – Digitalis