【发布时间】:2017-09-25 08:57:01
【问题描述】:
使用 PHP curl 获取与在浏览器中使用相同 url 时相同的数据时遇到问题。
这是我的 curl 请求。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic " . $authString));
$data = curl_exec($ch);
由于需要授权,我无法使用 file_get_contents。
部分返回的数据是一个应该有这个查询字符串的url:
?q=StatusDate%20%3C%20 ... &fields= ...
解码的是哪个
?q=StatusDate < ... &fields= ...
这就是我在使用浏览器时得到的。但是当我使用 PHP 和 Curl 时,我只得到这个:
?q=StatusDate&fields= ...
%20%3C%20 ... 不见了。
我猜我需要另一个 curlopt 设置,但看不到任何明显的东西。返回的数据是json格式,使用json_decode没有区别。
我已经尝试过CURLOPT_BINARYTRANSFER,根据手册,我的 PHP 版本忽略了它,但没有任何区别。
请帮帮我。
我使用的是 php 5.6.30
【问题讨论】: