Списка урлов нет, они выдаются в зависимости от того на какой странице данных в данный момент находишься (пагинация). Формируется задача
Нужно подключиться ->
выполнить код и получить новый url ->
Соединиться с новым url->
Выполнить код и получить следующий url ->
....
Как это пытаюсь сделать я:
<?php
/* Первое подключение. Использую опцию которая принудительно закроет соединение,
я думаю, что это даст мне возможность использовать код подключения повторно подставив новый url. */
$curl = curl_init('https://api.site.ru/v1/assortment/?api_key=cbc874c6031c9bc71d36aac0b6000');
$arHeaderList = array();
$arHeaderList[] = 'Accept: application/json';
$arHeaderList[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 OPR/65.0.3467.78';
curl_setopt_array(
CURLOPT_URL => $curl;
CURLOPT_HTTPHEADER => $arHeaderList;
CURLOPT_FOLLOWLOCATION => true;
CURLOPT_RETURNTRANSFER => true;
CURLOPT_FORBID_REUSE => true; //для принудительного
) //закрытия соединения после завершения его обработки
$result = curl_exec($c);
curl_close($c);
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//Далее исполняется функция и происходит получение нового url
/*
функция data();
*/
data();
$url=($data["meta"]["pagination"]["next"]); //Новый url
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//Далее я в коде подключения выставляю новый url и в опциях выставляю принудительного использования нового соединения вместо закешированного.
$arHeaderList = array();
$arHeaderList[] = 'Accept: application/json';
$arHeaderList[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 OPR/65.0.3467.78';
$url = ($data["meta"]["pagination"]["next"]);
$url_p = curl_init($url);
curl_setopt_array(
CURLOPT_URL => $url_p;
CURLOPT_HTTPHEADER => $arHeaderList;
CURLOPT_FOLLOWLOCATION => true;
CURLOPT_RETURNTRANSFER => true;
CURLOPT_FRESH_CONNECT => true; // Опция принудительного использования нового соединения вместо закешированного.
)
$result1 = curl_exec($curl);
curl_close($curl);
if($result1){
echo "Подключение состоялось";
}
else {
echo "НЕ состоялось, но обработано";
}
?>
Код работает ровно до тех пор пока я не вставлю код нового подключения, далее пустой экран.
У Вас есть мысли как решить мою проблему? может быть я использую неправильный подход?