Foreach в классе php? Всем привет, подскажите плз как реализовать:
- Через API VK получаю записи со стены ВК
- Но не могу понять как добавить получение записей не с 1 страницы, а с несколькихКОД -(int)$this->owner_id,
'filter' => 'owner',
'offset' => 1,
'count' => $this->count,
'extended' => 1,
'access_token' => $this->access_token,
'v' => '5.92'
);
$get_params = http_build_query($request_params);
$result = json_decode(file_get_contents('https://api.vk.com/method/wall.get?'. $get_params), TRUE);
if ($result !== false) {
return $result['response']['items'];
}
else {
$error = 'Ошибка! Записи не получены.';
return $error;
}
}
}
$getPost = new GetPost();
var_dump($getPost->wallGet());

21 Авг 2019 в 06:58
207 +1
1
Ответы
1

Для получения записей не только с первой страницы, а с нескольких страниц, можно использовать цикл foreach внутри метода wallGet() в классе GetPost. Вам нужно будет изменить параметр offset в запросе к API VK для получения записей с разных страниц.

Пример:

public function wallGet() {
$posts = []; // Создаем пустой массив для хранения всех записей
foreach ($this->owner_id as $owner_id) {
$request_params = array(
'owner_id' => -(int)$owner_id,
'filter' => 'owner',
'count' => $this->count,
'extended' => 1,
'access_token' => $this->access_token,
'v' => '5.92'
);
$offset = 0;
do {
$request_params['offset'] = $offset;
$get_params = http_build_query($request_params);
$result = json_decode(file_get_contents('https://api.vk.com/method/wall.get?'. $get_params), TRUE);
if ($result !== false) {
$posts = array_merge($posts, $result['response']['items']); // Добавляем полученные записи к общему массиву
$offset += $this->count; // Увеличиваем смещение для следующей страницы записей
}
else {
$error = 'Ошибка! Записи не получены.';
return $error;
}
} while ($offset < $result['response']['count']); // Проверяем, что не достигли конца списка записей
}
return $posts;
}

Таким образом, в данном коде цикл foreach проходит по каждому значению в массиве $owner_id (каждой группе), а затем внутри этого цикла используется цикл do-while для получения всех записей с заданным смещением (offset) с помощью увеличения этого смещения на значение count. Полученные записи добавляются к общему массиву $posts, который затем возвращается как результат метода wallGet().

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир