cURL PHP несколько запросов на динамический URL (Looping Unknown Times)

Я новичок в CURL & Я пытаюсь извлечь данные из динамического URL. Я успешно получил данные только с 1 страницы, но мне нужно получить данные со всех страниц. Проблема здесь в том, что страницы являются переменными; Я не знаю, сколько раз код должен зацикливаться на всех страницах. то есть количество страниц варьируется от одного случая к другому, и хорошая программа — это та, которая работает в максимально возможном количестве случаев. Следовательно, размещение ссылок в массиве и их циклирование не является правильным решением для этого.

Вот краткое объяснение URL, с которого я пытаюсь получить данные:

https://link-search.api.cj.com/v2/link-search?website-id=[Your-ID]&link-type=banner
&advertiser-ids=1513033&records-per-page=100&page-number=' . $num

Вы заметили последнюю переменную $num? Это должно представлять номер страницы, откуда будут получены данные. В некоторых случаях это может быть только 1, а в некоторых других случаях это может быть 10, 12 или 15 (варьируется) в зависимости от параметров, которые я выбираю, хочу ли я видеть все или фильтровать некоторую информацию.

Теперь вот проблема. Как динамически увеличивать это число, пока запрос возвращает данные? а если нет, то cURL должен перестать работать?

Вот код:

<?php

$num = 1;


$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "XGET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_ENCODING, "UTF-8");

curl_setopt($curl, CURLOPT_URL, 'https://link-search.api.cj.com/v2/link-search?website-id=[Your-ID]&link-type=banner&advertiser-ids=1513033&records-per-page=100&page-number=' . $num);


curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_COOKIE,true);


$result = curl_exec($curl);

$xml = simplexml_load_string($result) or die("Error: Cannot create object");

if (curl_errno($curl)) {
echo 'Error:' . curl_error($curl);
}


curl_close($curl);

?>

1

Решение

Вы можете определить свой запрос curl внутри функции и вызвать эту функцию следующим образом:

<?php
$GLOBALS['num'] = 1;

function curlRequest()
{

// HERE DEFINE YOUR CURL REQUEST
// https://yourUrl.com?$GLOBALS['num']

if (curl_errno($curl)) {
echo 'Error:' . curl_error($curl);
// Exit from function in case there is no output
return;
} else {
$GLOBALS['num']++;
// Call the function to fetch NEXT page
curlRequest();
}
}

// Call the function for first time

curlRequest();

Предполагая, что curl выдаст ошибку, если номер страницы не существует, или вы можете реализовать условие, полученное в результате, который вы получаете. Надеюсь, вы получите представление об этом.

Основная часть здесь, если & остальное. Вы должны реализовать, если условие на вывод, который вы получаете, и если страница не существует, вывод будет отличаться, так что вы можете просто вернуться из функции в этом случае.

2

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

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

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