使用curl从URL检索JSON

时间:2018-10-09 10:43:48

标签: php json curl

我正在尝试使用JSONURL检索curl,但是它从该URL返回空数据

$curl =curl_init('https://www.bloomberg.com/markets/api/security/currency/cross-rates/PKR,USD,AED,GBP,SAR,AUD,CAD,EUR,BHD,CHF,CNY,DKK,HKD,INR,JPY,KWD,MYR,NOK,NZD,OMR,QAR,SEK,THB');

curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$page = curl_exec($curl);
print_r($page)

非常感谢。

3 个答案:

答案 0 :(得分:0)

尝试使用file_get_contents

$jsonString = file_get_contents('https://www.bloomberg.com/markets/api/security/currency/cross-rates/PKR,USD,AED,GBP,SAR,AUD,CAD,EUR,BHD,CHF,CNY,DKK,HKD,INR,JPY,KWD,MYR,NOK,NZD,OMR,QAR,SEK,THB');

$jsonArray = json_decode($jsonString, true);

答案 1 :(得分:0)

您的php / libcurl被阻止以某种方式访问​​互联网。启用CURLOPT_VERBOSE,记录VERBOSE日志,并与您的本地sysadmin一起使用,这可能是他的工作(可能是防火墙或iptables规则或不允许php Internet访问的东西?也许是错误配置的dns服务器?您的sysadmin应该知道。)添加此内容获取详细记录:

curl_setopt($curl,CURLOPT_VERBOSE,1);
curl_setopt($curl,CURLOPT_STDERR,fopen("php://output","wb"));

答案 2 :(得分:0)

尝试以下代码:

    $ch = curl_init();
    $data_string = json_encode($data); // OR $data_string = http_build_query($data);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);