PHP cUrl возвращает пустую строку без var_dump

Я использовал 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 … ничего.

Я также попробовал фиксированный пользовательский агент для cURL, а также случайные пользовательские агенты .. ничего …

Единственный раз, когда это работает (время от времени, не всегда), это если я делаю простой var_dump ($ prdhtml); строки в результате на странице, и я не понимаю, как это отличается от ob_start.

Я не понимаю, в чем проблема и как ее исправить …

РЕДАКТИРОВАТЬ:

Пример кода и скрипка:
http://codepad.viper-7.com/aePjg7

1

Решение

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); //
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]