【发布时间】:2022-12-09 04:35:00
【问题描述】:
我有读取远程 json 数据的 cURL 函数。它适用于许多服务器,但现在我需要在一个特定的网站上使用它,并且它不会将数据传递给变量。我仍然可以 var_dump 它或者只是简单地回显它,它会将我发送到那个网站。
这是我的远程服务器端代码(这里很简单):
<?php echo json_encode(['test'=>'test']);?>
这是我的接收端:
<?php
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => 'http://binance99.unaux.com/index.php',
CURLOPT_RETURNTRANSFER => true
);
curl_setopt_array($ch, $curlConfig);
$r = curl_exec($ch);
curl_close($ch);
print_r(json_decode($r));
?>
$r 中没有任何内容,如果我使用 var_dump($r) 它会将我重定向到 http://binance99.unaux.com/index.php,
我尝试了 CURLOPT_HEADER => false,我也尝试了远程网站的 SSL 版本,但没有成功。
我也试过 file_get_contents() 有同样的结果。
任何帮助,将不胜感激!
【问题讨论】:
-
您是否尝试过使用
curl_error()检查任何错误并查看使用curl_getinfo收到的信息? -
“$r 里什么都没有”- 这不可能是真的。输出那个“什么都没有”,那么不可能将你重定向到任何地方。“如果我 var_dump($r) 它会将我重定向到......”- JSON 实际上也不能将您“重定向”到任何地方。因此,这更加表明,您实际上并没有取回 JSON - 但可能是一些 HTML,其中包含通过 JS 或 meta 元素进行的重定向。如果您传递无效的 JSON,json_decode 将返回 null。
-
没有得到 curl_error() 我确实得到了 curl_info() 结果:附上它作为问题的答案