Задать вопрос
@rusindex
Начинающий програмист

Не может больше внести txt чем 3 мб. почему?

Есть код который запрашивает ID пользователей групп. Он отлично работает с группами до 150 тысяч. пользователей а дальше почему то вообще перестает работать

$page = 0;
$limit = 1000; 

do 	{
$offset = $page * $limit;
$getlist = vkapi('groups.getMembers?group_id='.$database_result['guid'].'&sort=id_asc&offset='.$offset.'&count=1000&access_token='.$token.'&v=5.103'); 
$json_get_all = json_decode($getlist, true);  $list = $json_get_all['response']['items']; $countcomm = $json_get_all['response']['count'];
if (!is_array($collectuids)) { $collectuids = $list; }
if (is_array($collectuids)) { $previos = $collectuids;  $collectuids = array_merge($previos, $list); }
++$page; usleep(335000);
} 

while($countcomm > $offset + $limit );
$uniqs = array_unique($collectuids);
$ss = serialize($uniqs); $wrguids = fopen("service/1$screen_name.txt", "w+b"); fwrite($wrguids,$ss); fclose($wrguids);


Дальше он записывает эти ID в service/1$screen_name.txt не записывает больше 157 000 пользовательских ID .
Суть вопроса код работает с группами до 150 тысяч человек но дальше отказывается выполняться. Почему?
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Тут скорее проблема в том что скрипту не хватает памяти чтобы вместить все $collectuids, так как никаких ограничений на выгрузку groups.getMembers vk не накладывает, и я без проблем выгружал списки участников сообществ по 1млн+ участников.

Быстрый хак - увеличить скрипту памяти при выполнении, а так же включить отображение ошибок
<?php
ini_set('display_errors', 1);
error_reporting(-1);

ini_set('memory_limit', '512M'); //512Mb

//тут ваш код


p.s. так же если скрипт запускается не через CLI, а через браузер, то он может вылетать просто по таймауту соединения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
А что сам Vk говорит в части лимитов апи? Скорее всего дело там. Если так то выкачивайте кусками по 100 000
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽