У меня есть конечная точка, на которую я могу отправить запрос GET, и он возвращает другой результат в зависимости от лимита и смещения.
https://example-foo-bar.com?l=100&o=0 // returns the first 100 items.
Я хочу создать цикл for (или цикл Nested for, который я предполагаю), который возвращает 100 элементов за раз, добавляя результат в массив каждый раз до конца ответа. У меня есть код для отправки запроса curl и сохранения результата, просто борясь за часть пакетной обработки.
Что-то типа:
https://example-foo-bar.com?l=100&o=0
https://example-foo-bar.com?l=100&o=99
https://example-foo-bar.com?l=100&o=199
https://example-foo-bar.com?l=100&o=218 // end of response ?
Я также знаю, сколько всего результатов, хранящихся как $ count;
Я закончил с чем-то вроде этого, но это не лучшая практика:
function testLoop(){
$limit = 100;
$count = getCount();
$j = ceil($count/$limit);
for ($i = 0; $i < $j; $i++){
$offset = $i*100;
echo 'https://example-foo-bar?l='.$limit.'&o='.$offset.'';
}
}
testLoop();
3 ответа
Я не уверен, правильно ли я понял вопрос. Но вы ищете что-то подобное?
$offset = 0;
$limit = 100;
$run = true;
$result_array = array();
while($run) {
$result_array = array_merge($result_array, json_decode(file_get_contents("https://example-foo-bar.com?l=".$limit."&o=".$offset),true));
$offset = $offset + $limit;
if($offset == {somenumber}) {
$run = false;
}
}
Затем используйте задание cron для вызова php-файла.
- Создайте таблицу «расписание» и сохраните идентификатор данных, имя_ссылки, смещение и столбец состояния
- установить выполнение cron каждые 10 минут и сначала принять запись (одну), статус которой = 0
- передать param в testLoop ($ limit) для вызова функции. Это может вся ссылка только смещение = 0, смещение = 99, смещение = 199 и так
- После завершения обновите статус = 1 в таблице расписания.
- Через 10 минут cron Call Step1.
Лучший способ использовать Cron для такого типа пакетного процесса, вы также можете использовать php-resque
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.