2011-10-07 100 views
1

任何想法爲什麼以下不起作用。php json返回布爾(false)

$request_url = "someurl?myId=$id"; //returns feed like above 

$json = file_get_contents($request_url, true); //getting the file content 

$decode = json_decode($json, true); 

var_dump($json); 

當我粘貼request_url到瀏覽器中我找回了JSON數據,但如果我嘗試在PHP中的var_dump簡直布爾(假);有任何想法嗎??

的更新和修復 確定球員感謝所有幫助。葉幫助我追蹤這一個。原來,php.ini被配置爲禁止打開網址,因此file_get_contents不起作用。我發現以下在各種網站上提到的方便功能,並將其用於排序。這是我用來幫助別人的方法。

function file_get_contents_curl($url) { 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser. 
curl_setopt($ch, CURLOPT_URL, $url); 

$data = curl_exec($ch); 
curl_close($ch); 

return $data; 
} 
+0

不確定在讀取URL時應將第二個參數設置爲true,因爲它們不在include_path中。 [this comment](http://php.net/manual/en/function.file-get-contents.php#95665)也可能與您的問題有關 – Einacio

+4

1)JSON無效。 2)出於某種原因,腳本無法訪問頁面,例如您需要登錄。3)請向我們顯示實際的URL,以便我們可以解決。 – lonesomeday

+0

除了寂寞的日子,請嘗試[json_last_error()](http://php.net/manual/function.json-last-error.php) – ComFreek

回答

0

我複製了你的問題,當ajax url錯誤(未找到)時,我觀察到bool(false)。 確保你的「someurl」是有效的。

如果JSON無效,您的腳本仍然會正確打印它。 如果網址沒有任何回報,你仍然可以觀察到'string(0)「'''

問題是無效的url。

0

也許應答的$ request_url字符集不是'utf-8'或'ansi'。

0

根據PHP文檔,file_get_contents在失敗時返回false。這意味着該網址無效或無法從PHP訪問。

如果您從服務器嘗試此操作,請確保您的防火牆未阻止此傳出通信。