2014-07-01 210 views
2

這是一個JSON API:https://jobs.github.com/positions.json?description=java&page=1 我想從這個網址獲取數據。使用php從json url獲取數據?

<?php 
$url = file_get_contents('https://jobs.github.com/positions.json?description=java&page=1'); 
var_dump(json_decode($url,true)); ?> 

此代碼返回NULL 我也檢查JSON驗證的網址:http://jsonformatter.curiousconcept.com/的JSON是有效的,但我續能從該網址,以獲取數據,請幫我...

+0

您是否啓用了錯誤報告? '$ url'真的是JSON嗎? – kero

+1

你的代碼對我來說工作得很好!你沒有安裝JSON嗎?當你轉儲'$ url'(這實際上不是URL,但是內容數據...)時,你會得到什麼? –

+0

我得到了結果bro julian.I沒有啓用我的php.ini中的php_openssl,所以我無法得到結果。謝謝你的幫助 – reegan29

回答

2

試試這個腳本來確定問題是什麼。如果沒有安裝JSON模塊(見@julian評論),你可以嘗試使用JSON的PHP實現這樣的:http://pear.php.net/pepr/pepr-proposal-show.php?id=198

if (! extension_loaded('json')) { 
    echo 'Module JSON not available!'; 
    exit(); 
} 

$url = file_get_contents('https://jobs.github.com/positions.json?description=java&page=1'); 
$data = json_decode($url,true); 

switch (json_last_error()) { 
    case JSON_ERROR_NONE: 
     echo ' - No errors'; 
    break; 
    case JSON_ERROR_DEPTH: 
     echo ' - Maximum stack depth exceeded'; 
    break; 
    case JSON_ERROR_STATE_MISMATCH: 
     echo ' - Underflow or the modes mismatch'; 
    break; 
    case JSON_ERROR_CTRL_CHAR: 
     echo ' - Unexpected control character found'; 
    break; 
    case JSON_ERROR_SYNTAX: 
     echo ' - Syntax error, malformed JSON'; 
    break; 
    case JSON_ERROR_UTF8: 
     echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; 
    break; 
    default: 
     echo ' - Unknown error'; 
    break; 
} 
+0

謝謝你kevin horst.Now我得到的結果。我沒有啓用php_openssl在我的php.ini所以我不能得到result.your代碼是有助於實現我的結果。耶穌祝福你 – reegan29