Php 我从特定的网站检索JSON时得到空值

Php 我从特定的网站检索JSON时得到空值,php,json,Php,Json,我想从以下位置检索JSON数据: 。。。如果将其放在浏览器上,您将看到JSON数据的格式正确。没问题 但是,当我尝试使用PHP使用标准脚本检索数据时: <?php $url = 'https://blockchain.info/api/receive?method=create&format=plain&anonymous=true&address=12Za1i1zhYTCeHWBg8yJb72BeEGQVEuMdT&callback=http%3A%2F%

我想从以下位置检索JSON数据:

。。。如果将其放在浏览器上,您将看到JSON数据的格式正确。没问题

但是,当我尝试使用PHP使用标准脚本检索数据时:

<?php
$url = 'https://blockchain.info/api/receive?method=create&format=plain&anonymous=true&address=12Za1i1zhYTCeHWBg8yJb72BeEGQVEuMdT&callback=http%3A%2F%2Fexample.com';
$JSON = file_get_contents($url);
$data = json_decode($JSON);
var_dump($data);
echo 'url: '.$url;
?>

。。。我没有得到任何数据;var_dump写入“NULL”(您可以在测试中测试前面的代码)。然而,如果我尝试任何其他返回JSON数据的url,我的代码就可以完美地工作


我做错了什么?这一定是我犯了一个非常愚蠢的错误,或者站点blockchain.info阻止了我的站点发出请求。

您的php配置中是否启用了
allow\u url\u fopen

如果没有,将生成警告-是否显示错误/警告

要检查错误,请在脚本顶部添加以下行

error_reporting(E_ALL);
ini_set('display_errors', true);

然后您可能会看到为什么
file\u get\u contents()
不起作用。

我认为这是由于跨域不匹配造成的。将页面更改为https或使用http呼叫。


这是有效的。

output
json\u last\u error()
我刚刚测试了你的代码,它工作正常。请再试一次。我已经使用cli进行了测试。您应该首先使用
var\u dump()
变量
$JSON
。不管怎样,你的代码对我来说就是这样。也许使用urlencode()-你有一些特殊的字符-你怎么会在服务器端PHP中出现跨域问题?我怀疑@GoriFater没有启用
https
并切换到
http
解决了这个问题,但没有解决任何跨域问题。不,我没有启用它;你说得对。“格雷西亚斯·波拉·阿尤达!”
error_reporting(E_ALL);
ini_set('display_errors', true);