以下情况每次且仅当在curl
调用之后打印$data
时,以下curl
调用才会成功。 curl_getinfo()
返回
[content_type] => text/html; charset=UTF-8
如果未打印$data
,则curl
呼叫有时返回与上述相同的结果,并且有时返回$data
为“正在加载...”,表示该页面尚未完成加载。 curl_getinfo()
返回
[content_type] => text/html
此外,当使用print_r($data)
时,我可以看到我的网站上的print_r(curl_getinfo($ch));
在执行curl
通话时被更新了几次。什么... F ...
(set_opt
列表越来越大,因为我正试图找到一个解决方案,哈哈)
哦,是的,即使我在将$data
返回到函数调用程序并捕获到另一个变量之后也打印了curl
。每次print_r($data)
都会成功。
这是正常行为吗?我不想print_r($data)
!
我检索的网址是否可能包含当我在网站上“打印”它时运行的javascript?为什么没有curl
时偶尔会起作用?参考:is-there-a-way-to-let-curl-wait-until-the-pages-dynamic-updates-are-done
edit:直到另行通知,我将function curl_get_contents($url) {
global $dbg;
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
//curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch,CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
$data = curl_exec($ch);
if ($dbg) {
print_r(curl_getinfo($ch)); // This one gets refreshed if print_r($data) used below
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
} else {
echo "ALL GOOD <br>";
}
}
curl_close($ch);
//echo $data; // If I do this...
//print_r($data); // ... or this. curl is success 100%.
return $data;
}
调用置于while循环中,检查下载的大小是否超过某个阈值。我将while循环设置为10次迭代,到目前为止,这已经足够了,即它将能够下载感兴趣的内容。消耗的时间几乎没有注意到。
mapDispatchToProps