@saniii

Как лучше оптимизировать перебор?

Не могу толком оптимизировать перебор прокси, такое ощущение что выглядит слишком громоздко, могли бы вы подсказать как облегчить код. Суть в следующем переться список прокси с откликом 100% проверяется если все прокси уже имеются в базе, загружается список прокси с откликом 95% и снова проверяется на наличие дубля, и так до минимального отклика которой в моем случаи составляет 40%. Если необходимо что то уточнить, я готов.

spoiler

if (!$proxy_class->checkProxy($row['proxy'], $row['proxy_type'])) { //  Проверка proxy

  $proxy_uprate = 100;          //  Начальная доступность proxy
  $proxy_search_status = true;  //  Статус поиска proxy

  while ($proxy_search_status && $proxy_uprate >= Config::KP_PROXY_UPRITE) { //  Поиск новой proxy
    foreach (Config::KP_PROXY_TYPE as $type) {  //  Перебор типов proxy https,socks4,socks5
      if ($proxy_search_status) {
        $proxy_list = $proxy_class->getProxyList($type, $proxy_uprate); //  Получение списка proxy

        if ($proxy_list) {
          foreach ($proxy_list as $proxy) {
            if ($proxy_search_status) {

              //  Проверка отсутствия дубля proxy
              if (!$db->getRow('SELECT * FROM ' . Config::DB_TABLE_USERS . ' WHERE table_id=' . Config::ID . ' AND proxy LIKE "' . $proxy .'"')) {
                Curl::setCurl()->setProxy($proxy, $type); //  Установка proxy

                //  Запись в базу данных новой proxy
                $db->getSql('UPDATE ' . Config::DB_TABLE_USERS . ' SET proxy = :proxy, proxy_type = :proxy_type WHERE id = ' . $row['id'], [
                  'proxy'      => $proxy,
                  'proxy_type' => $type
                  ]);
                $proxy_search_status = false; //  Смена статуса поиска proxy
              }
            }
          }
        }
      }
    }

  $proxy_uprate = $proxy_uprate - 5;  //  Уменьшение доступности прокси
  }
}

  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы