我正在使用cUrl来降低某些产品的价格。所有这些都运作良好,几个月,直到现在。
现在在cURL之后,我得到一个空的结果..显然......因为如果我对返回的变量执行var_dump,它就可以工作......我不明白var怎么可能是空的,直到我打印它?!
这是我的完整cURL功能:
function linkcurl($targetURL){
$linkcurl = curl_init();
curl_setopt($linkcurl, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/cookie.tmpz");
curl_setopt($linkcurl, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/cookie.tmpz");
curl_setopt($linkcurl, CURLOPT_VERBOSE, true);
//curl_setopt($linkcurl, CURLOPT_USERAGENT, random_user_agent());
curl_setopt($linkcurl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($linkcurl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($linkcurl, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($linkcurl, CURLOPT_HEADER, 0); // debug headers sent - 1
curl_setopt($linkcurl, CURLOPT_URL, $targetURL);
$datax = curl_exec ($linkcurl);
curl_close($linkcurl);
return $datax;
}
$prdhtml = linkcurl($product_page_url); //
不,我确实尝试向我的cURL添加更多选项但是没有改变一件事:
curl_setopt($linkcurl, CURLOPT_VERBOSE, true);
curl_setopt($linkcurl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($linkcurl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($linkcurl, CURLOPT_AUTOREFERER, TRUE);
同样的结果,没有任何改变。
我确实尝试将var_dump ob_start添加到我的curl函数中,如下所示:
ob_start();
return curl_exec ($ch);
ob_end_clean();
仍然没有。
我还尝试在函数之外捕获cURL输出,如下所示:
ob_start();
var_dump($prdhtml);
$prdhtml = ob_get_clean();
仍然......没有改变......我也尝试过使用print_r和var_export的varionts ......没有。
我也尝试过针对cURL的固定用户代理以及随机用户代理......没有......
它唯一有效的时间(不时,并非总是)是我做一个简单的var_dump($ prdhtml);在页面上作为结果的字符串,我不知道它与ob_start有什么不同。
我不明白问题是什么以及如何解决它......
编辑:
示例代码和小提琴: http://codepad.viper-7.com/aePjg7
答案 0 :(得分:0)
function linkcurl($targetURL){
$linkcurl = curl_init();
curl_setopt($linkcurl, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/cookie.tmpz");
curl_setopt($linkcurl, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/cookie.tmpz");
curl_setopt($linkcurl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($linkcurl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($linkcurl, CURLOPT_URL, $targetURL);
$datax = curl_exec ($linkcurl);
if ($datax) {
curl_close($linkcurl);
return $datax;
} else {
return curl_error ( $linkcurl );
}
}
$prdhtml = linkcurl($product_page_url); //