2017-01-23 4 views
1

URLからデータをロードしようとしています。PHPで動作しないJSONオブジェクトを反復する

データは

{ 
    "UFs": 
    [ 
     { 
      "Valor" : "26.348,83", 
      "Fecha" : "2017-01-01" 
     }, 
     { 
      "Valor" : "26.349,68", 
      "fecha" : "2017-01-02" 
     } 
    ] 
} 

下のマイPHPコードとして与えられ、これまでのところ、次のようになります

ini_set("allow_url_fopen", 1); 

$url = 'http://api.sbif.cl/api-sbifv3/recursos_api/uf/2017?apikey=472d79589e5bda11f1f032e62047911541c8a937&formato=json'; 
$obj = json_decode(file_get_contents($url), true); 

foreach($obj as $item) { 
    echo $item['Valor'] . "<br/>"; 
} 

問題は、私は、私が試した空白の画面を毎回取得しています。私もカールを使ってURLを以下のように読んでみました:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_URL, 'http://api.sbif.cl/api-sbifv3/recursos_api/uf/2017?apikey=472d79589e5bda11f1f032e62047911541c8a937&formato=json'); 
$result = curl_exec($ch); 
curl_close($ch); 

$obj = json_decode($result); 

foreach($obj as $item) { 
    echo $item['Valor']."<br/>"; 
} 

しかし、それはうまくいきません。私は、問題は私のループごとに、または私が配列を読み取ろうとしている方法だと思います。

+1

は、あなたのループとポスト結果の前のvar_dump($のOBJ)を行うことができますか? – Kaylined

+1

また、これらの2行をスクリプトの先頭に追加します。 error_reporting(E_ALL);ini_set( 'display_errors'、1); – Kaylined

答えて

1

値はUFsオブジェクト内にあります。 foreachループをこのように使用します。

foreach($obj['UFs'] as $item) { 
    echo $item['Valor'] . "<br/>"; 
} 
+1

それは働いた!ありがとう。 –

+0

@BryanGabrielMacuerあなたのエラー報告設定を見直して、フォーラムでPHPがあなたにすでに伝えていることを尋ねる必要はありません;-) –

+0

@ÁlvaroGonzálezエラー報告がオンで、コードにエラーがありませんでした。変数に間違ったやり方でアクセスしていました。 –

関連する問題