使用curl是否有任何大小限制返回数据?

时间:2018-01-06 07:51:22

标签: php curl cakephp

我遇到了一个大问题。我正在使用curl函数来点击浏览器。我使用curl函数获取数据。

以下是我的curl function requestToAvr

public function requestToAvr($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BUFFERSIZE, 512);
    curl_setopt($ch, CURLOPT_TIMEOUT,3);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

当我使用下面的代码时,我得到了我想要的价值。

$url_data           = "http://192.168.20.128/?cmd={sid:123,fnc:201,val:[188,24910,3]}";
$ret_data           = $this->requestToAvr($url_data);

$ret_data值看起来像 {sid:1234,{mid:123,fnc:201,sts:[3,030b0600000689000000E000E401FF04D231F5]}}

但是当我使用下面的代码时,我没有任何价值。 pr($ret_data)打印空

$url_data           = "http://192.168.20.128/?cmd={sid:123,fnc:201,val:[188,24910,5]}";
$ret_data           = $this->requestToAvr($url_data);

但是当我点击此网址http://192.168.20.128/?cmd={sid:123,fnc:201,val:[188,24910,5]}直接浏览器时,它会在浏览器正文中显示以下值。

{SID:1234 {中期:123,FNC:201,STS [5,050b3000CF00C000D300D100CF00CF00D100CF00CF00CF00D100CF00CF00D100CF00CF00D100CF00CE00D300D100D100CF00CFDF8D]}}

那么如何使用curl function获取价值?我还使用curl_setopt($ch, CURLOPT_BUFFERSIZE, 512);来增加缓冲区大小。我错了吗??是否有任何替代功能解决了我的问题?

请提出任何想法或建议。

1 个答案:

答案 0 :(得分:1)

requestToAvr()功能中,添加var_dump($result)。函数被正确调用吗?如果$result为false,请检查curl_error($ch),并回显/记录错误。您的PHP计算机可能无法访问192.168.20.128,或者在被curl访问时输出不同(也许远程服务器提供不同/空白输出,因为请求标头看起来像来自自动源)