2016-04-14 17 views
0

bu url json verilerini yüklemek için çalışıyorum gelen json veri almak = 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 Kullanımı diğer json URL'ler ile çalışır ama bu bir garip. Sadece ilk satırı "{" döndürür. Strlen sağ 1480 verir.Substr (2,18) de doğru olan "belgeler" verir. Ama yine de bütün metni ekleyemem. Belki de metin satırını okuyarak başka bir dizeye kaydetmenin bir yolu olabilir mi? tüm metin hala tam textfile yüklenir İşte Ayrıca bu işlevi çalıştı ama hala aynı ben

<?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; 
?> 

çalıştı php kod.

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 olarak kaydetme – Mihai

+0

Çalıştırdığımda beklendiği gibi çalışır. Tam JSON yanıtını alıyorum ve dosyaya kaydeder. Yukarıdaki kodu nasıl arıyorsun; HTTP Sunucusu veya CLI ile mi? – Sean

+0

Hat satırını okumana gerek yok. JSON'un satır sonları olmasına izin verilir, kod çözdüğünüzde boşluk olarak göz ardı edilir. – Barmar

cevap

0

Dönüş değerini json_decode ile alabilirsiniz.

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); 
}