2016-04-14 12 views
0

私はこのURLからJSONデータをロードしようとしているからJSONデータを取得= http://api.opencagedata.com/geocode/v1/json?query=48.84737%2C2.28605&pretty=1&no_annotations=1&no_dedupe=1&key=b61388b5a248b7cfcaa9579ed290485bPHP - URL

のfile_get_contentsを使用するには、他のJSONのURLで動作しますが、この1は奇妙です。最初の行の "{"のみを返します。 Strlenは1480を返します.Substr(2,18)は "documentation"を与えてくれます。しかし、私はまだテキスト全体をエコーすることはできません。テキストを行単位で読み込んで別の文字列に保存する方法がありますか?全体のテキストがまだ完全にテキストファイル にロードされているここで私は

<?php 
$url = file_get_contents("http://api.opencagedata.com/geocode/v1/json?query=48.84737%2C2.28605&pretty=1&no_annotations=1&no_dedupe=1&key=b61388b5a248b7cfcaa9579ed290485b"); 
$save = file_put_contents("filename.txt", $url); 
echo $url; 
?> 

をしようとしたPHPコードはまた、この機能を試してみましたが、それでも同じです。

function get_data($url) { 
$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$data = curl_exec($ch); 
curl_close($ch); 
return $data; 
} 
+0

json – Mihai

+0

として保存してください。予想通り動作します。私は完全なJSON応答を取得し、ファイルに保存します。上記のコードはどうやって呼びますか? HTTPサーバーまたはCLI経由で – Sean

+0

1行ずつ読む必要はありません。 JSONは改行を許可されています。デコードすると空白として無視されます。 – Barmar

答えて

0

json_decodeで戻り値を取得できます。

function get_data($url) { 
$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$data = curl_exec($ch); 
curl_close($ch); 
return json_decode($data,true); 
}