我遇到了一个大问题。我正在使用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);
来增加缓冲区大小。我错了吗??是否有任何替代功能解决了我的问题?
请提出任何想法或建议。
答案 0 :(得分:1)
在requestToAvr()
功能中,添加var_dump($result)
。函数被正确调用吗?如果$result
为false,请检查curl_error($ch)
,并回显/记录错误。您的PHP计算机可能无法访问192.168.20.128
,或者在被curl访问时输出不同(也许远程服务器提供不同/空白输出,因为请求标头看起来像来自自动源)