PHP - 从网址

时间:2016-04-14 21:37:34

标签: php json url openstreetmap

我试图从这个url =加载json数据 http://api.opencagedata.com/geocode/v1/json?query=48.84737%2C2.28605&pretty=1&no_annotations=1&no_dedupe=1&key=b61388b5a248b7cfcaa9579ed290485b

使用file_get_contents可以与其他json url一起使用,但这个很奇怪。它仅返回" {"第一行。 Strlen给出1480这是对的.Substr(2,18)给出"文档"这也是对的。但我仍然无法回应整篇文章。也许有一些方法可以逐行读取文本并将其保存在另一个字符串中?整个文本仍然在文本文件中完全加载 这是我试过的PHP代码

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

也尝试了这个功能但仍然相同。

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

1 个答案:

答案 0 :(得分: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);
}