Как без ошибок получить страницу через CURL и отследить редирект?

78
31 марта 2022, 12:00

Имеется такой код получения страницы. При попытке получить первый url, срабатывает редирект и переменные $error и $response_string пустые.

Каким образом получить содержимое страницы и удостоверится в том что был редирект?

    $url = "https://kamin.ru/katalog/kaminy_oblicovki/vstroennye/oblicovka_smile_80_screen80_edilkamin/";
    #$url = "https://kamin.ru/katalog/dymohody/modul_nye_dymohody_iz_nerzhaveyuwej_stali/dvustennye_rastrubno-profil_noe_soedinenie/yubka_na_trubu_v50r_d115_215_nerzh304_vulkan/";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 5);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
    $error = curl_error($curl);
    $response_string = curl_exec($curl);
    curl_close($curl);
Answer 1
$url = "https://kamin.ru/katalog/kaminy_oblicovki/vstroennye/oblicovka_smile_80_screen80_edilkamin/";
#$url = "https://kamin.ru/katalog/dymohody/modul_nye_dymohody_iz_nerzhaveyuwej_stali/dvustennye_rastrubno-profil_noe_soedinenie/yubka_na_trubu_v50r_d115_215_nerzh304_vulkan/";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 5);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE); //TRUE для следования любому заголовку "Location: ", отправленному сервером в своем ответе (учтите, что это происходит рекурсивно, PHP будет следовать за всеми посылаемыми заголовками "Location: ", за исключением случая, когда установлена константа CURLOPT_MAXREDIRS).  
$error = curl_error($curl);
$response_string = curl_exec($curl);
print_r(curl_getinfo($curl, CURLINFO_REDIRECT_COUNT)); // Количество редиректов. Если 0, значит не было. Если не 0, то выведет количество редиректов.
print_r(curl_getinfo($curl, CURLINFO_EFFECTIVE_URL)); // Получаем url перенаправления
curl_close($curl);
print_r($response_string); // Выводим страницу. 
READ ALSO
Запись массива PHP в БД SQL

Запись массива PHP в БД SQL

Пытаюсь сохранить массив в БД

95
.htaccess, get, чпу

.htaccess, get, чпу

Что нужно прописать в htaccess, что бы превратить ссылку

91
Сделать карту на весь экран

Сделать карту на весь экран

Цель: Сделать карту на весь экран без дублирования по горизонтали и верхнего "пустого пространства"Проблема: Вместо дублирования карты появились...

91
Как повторять аудио-воспроизведение?

Как повторять аудио-воспроизведение?

Есть игра на Canvas HTML5 и нужно после прерывания воспроизведения повторять данное аудио постоянноПробовал с помощью location

81