接收JSON對象我想實現一個PHP客戶端發送一個HTTP GET來發回一個JSON對象與返回信息的服務器。我知道如何解碼JSON一旦我的PHP腳本收到它,但我怎麼會去實際得到它?從HTTP GET在PHP
編輯:注意 - 我發送服務器一個HTTP GET,它會生成並返回一個JSON文件。它不是坐在服務器上的文件。
接收JSON對象我想實現一個PHP客戶端發送一個HTTP GET來發回一個JSON對象與返回信息的服務器。我知道如何解碼JSON一旦我的PHP腳本收到它,但我怎麼會去實際得到它?從HTTP GET在PHP
編輯:注意 - 我發送服務器一個HTTP GET,它會生成並返回一個JSON文件。它不是坐在服務器上的文件。
$json = file_get_contents('http://somesite.com/getjson.php');
這是行不通的。我必須發送一個HTTP GET到服務器,該服務器生成並返回一個JSON文件。這不僅僅是一個我可以訪問的文件。因此,當我嘗試這樣做時,我收到一條錯誤消息,提示「無法打開流」。 – DevinFalgoust 2012-04-18 20:07:55
爲了'file_get_contents()'來正確配置PHP,以便通過HTTP和其他協議進行檢索,但是如果是這樣,我第二個推薦使用它。這聽起來像它可能不是你的情況。你能提供一些關於你的PHP配置的信息嗎?如前所述,如果你有捲曲,那是另一種可能性。 – JMM 2012-04-18 20:10:45
你必須使用捲曲或的file_get_contents(兩者都需要在php.ini文件中啓用),使他們的工作,那麼你的$ JSON變量都會好的。 – 2012-04-18 20:11:30
瀏覽器採取不同的依據是什麼,服務器的響應。無論您向服務器發出什麼類型的請求(無論是GET,POST等),而是要返回JSON作爲響應,您都必須在腳本中設置標題,請求:
header('Content-Type: application/json;charset=utf-8;');
然後回聲JSON字符串,例如:然後
//...populating your result data array here...//
// Print out the JSON formatted data
echo json_encode($myData);
用戶代理將得到JSON字符串。如果AJAX提出的要求,那麼你可以說結果簡單地解析爲一個JavaScript對象,你可以處理,像這樣:
//...AJAX request here...//
// Parse result to JavaScript object
var myData=JSON.parse(XMLHttp.responseText);
頭本身並沒有-really-必要的,但是是很好的做法排序的。無論如何,JSON.parse()都可以解析響應。
[cURL](http://php.net/manual/en/book.curl.php) – PeeHaa 2012-04-18 20:01:34
也許相關:http://stackoverflow.com/questions/3592802/php-get-url-content-json -with捲曲 – 2012-04-18 20:03:03
'$ JSON = json_decode(的file_get_contents( 「http://server.com/json.php」));' – 2012-04-18 20:12:13