2012-03-09 36 views
-1

我正在使用此代碼嘗試從使用yql將許多json文件編譯成一個json的json文件中獲取json數據。用php加載Json數據給出錯誤

我YQL查詢的格式如下:

select * from json where 
url="http://ebird.org/ws1.1/data/obs/region_spp/recent?rtype=subnational2&r=US&sci=Dendrocygna%20autumnalis&fmt=json" 
or url = "http://ebird.org/ws1.1/data/obs/geo_spp/recent?lng=-119.859512&lat=34.410240&sci=Dendrocygna%20autumnalis&dist=49&back=14&maxResults=10000&fmt=json&includeProvisional=true" 
and itemPath = "json.json" 

rawurlencode上述獲得YQL查詢網址的q=一部分。然後我得到這個輸出的網址。當副本和呼應URL粘貼到瀏覽器中它工作正常,但是當我嘗試在URL中使用file_get_contents我得到這個:

cbfunc({"error":{"lang":"en-US","diagnostics":{"publiclyCallable":"true"},"description":"Query syntax error(s) [line 1:3675 missing EOF at '_']"}}); 

於是我問,爲什麼它不是當我使用它的工作與file_get_contents,但當我在我的瀏覽器中使用的URL。另外,有沒有更聰明/更簡單的方法來使用多個json文件一起使用PHP?我試着用捲曲拉YQL JSON和有一個像奇怪的輸出:

8<\/howMany>34.4136<\/lat>-119.8756<\/lng>L615794 

這種方法就可以了,但我不知道如何得到它成可用的陣列。

回答

1

嘗試使用urlencode()代替rawurlencode()。您要發送到的系統可能不喜歡編碼。

+0

同樣的錯誤。我非常難過。 – Patrick 2012-03-09 21:06:35

+0

您可以發佈您的代碼,以便我可以看一看嗎? – 2012-03-09 21:14:15

+0

感謝您的幫助Kory!當我將空間添加到stackoverflow文本編輯器的代碼塊中時,我意識到我的json網址中有一個空格。它現在有效。你間接幫助了我,所以謝謝! – Patrick 2012-03-09 21:22:54