2

嗨,我正在尝试使用 Curl 和 PHP 使用以下代码从 url 从 JSON 文件中获取数据:

<?php
    //  Initiate curl
    $url = "https://panel.virtualcenter360.es/home/api/getdatasample?dateIni=1376524800&dateEnd=1381795200";
    $ch = curl_init($url);
    // Set the url
    curl_setopt($ch, CURLOPT_URL,$url);
    // Execute
    $result=curl_exec($ch);

    $res = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($result));

    var_dump(json_decode($res, true));

        switch (json_last_error()) {
    case JSON_ERROR_NONE:
        echo ' - No errors';
    break;
    case JSON_ERROR_DEPTH:
        echo ' - Maximum stack depth exceeded';
    break;
    case JSON_ERROR_STATE_MISMATCH:
        echo ' - Underflow or the modes mismatch';
    break;
    case JSON_ERROR_CTRL_CHAR:
        echo ' - Unexpected control character found';
    break;
    case JSON_ERROR_SYNTAX:
        echo ' - Syntax error, malformed JSON';
    break;
    case JSON_ERROR_UTF8:
        echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
    break;
    default:
        echo ' - Unknown error';
    break;
}
    curl_close($ch);
?>

我收到无错误消息,但结果为 NULL。你认为这可能是什么问题?

也许我需要从 Curl 配置一些参数?

谢谢!

4

3 回答 3

1

如果您需要做的只是获取一些 json 信息,我建议您使用file_get_contents()而不是 cURL 函数。

于 2013-10-31T12:13:15.673 回答
1

如果你想使用 curl 你必须这样做:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

CURLOPT_SSL_VERIFYPEER
FALSE 阻止 cURL 验证对等方的证书。可以使用 CURLOPT_CAINFO 选项指定要验证的备用证书,或者可以使用 CURLOPT_CAPATH 选项指定证书目录。

http://php.net/manual/en/function.curl-setopt.php

于 2013-10-31T12:35:29.693 回答
0

在 Codeigniter 应用程序/库文件夹中

header('Content-Length: ' . strlen($output)); //Comment line no. 267 of REST_Controller.php
于 2016-03-28T13:27:01.523 回答