【发布时间】:2016-08-06 16:16:35
【问题描述】:
我正在尝试从此 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;
}
【问题讨论】:
-
当我运行它时它按预期工作。我得到了完整的 JSON 响应并将其保存到文件中。你怎么称呼你上面的代码;通过 HTTP 服务器或 CLI?
-
你不需要逐行阅读。 JSON 允许有换行符,当你解码时它们会被忽略为空格。
-
我正在通过 HttpUrlConnection 从 android 虚拟设备呼叫。当我解析其他 json 并回显字符串时。它显示了整个字符串。但是为什么这个只显示第一行?如果我尝试 json_decode ,如何获得“格式化”字符串?
标签: php json url openstreetmap