Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Ninjaq
1 / 1 / 1
Регистрация: 30.10.2011
Сообщений: 3

Не работает CURLOPT_COOKIEFILE

06.11.2011, 17:57. Показов 2654. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс для multi_curl

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
class MCurl {
  var $timeout = 20;
// максимальное время загрузки страницы в секундах
  var $threads = 10;
// количество потоков
  var $all_useragents = array();
  function multiget($urls, & $result) {
    $threads = $this->threads;
    $this->all_useragents = file(ua_file);
    $useragent = $this->all_useragents[array_rand($this->all_useragents)];
    $i = 0;
    $b = count($urls);
    for ($i = 0; $i < $b ; $i = $i + $threads) {
      $urls_pack[] = array_slice($urls, $i, $threads);
    }
    foreach ($urls_pack as $pack) {
      $mh = curl_multi_init();
      unset ($conn);
      foreach ($pack as $i => $url) {
        $conn[$i] = curl_init(trim($url));
        curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, true);
        curl_setopt($conn[$i], CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($conn[$i], CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($conn[$i], CURLOPT_AUTOREFERER, true);
        curl_setopt($conn[$i], CURLOPT_HEADER, true);
        curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($conn[$i], CURLOPT_TIMEOUT, $this->timeout);
        curl_setopt($conn[$i], CURLOPT_USERAGENT, $useragent);
        curl_setopt($conn[$i], CURLOPT_COOKIEJAR, COOKIE);
        curl_setopt($conn[$i], CURLOPT_COOKIEFILE, COOKIE);
      //  curl_setopt($conn[$i], CURLOPT_PROXY, 'localhost:8080'); это чтобы смотреть заголовки которые отправлям и что получаем, удобно
        curl_multi_add_handle($mh, $conn[$i]);
      }
      do {
        $n = curl_multi_exec($mh, $active);
        usleep(100);
      } while ($active);
      foreach ($pack as $i => $url) {
        $result[] = curl_multi_getcontent($conn[$i]);
        curl_close($conn[$i]);
      }
      curl_multi_close($mh);
    }
  }
}
Есть некий файл который подключает класс и вызывает его.
PHP
1
2
3
4
5
6
define(DS, DIRECTORY_SEPARATOR);
define(PWD, getcwd());
define(ua_file, PWD . DS . "stat" . DS . "useragents.txt");
// user agents file
define(COOKIE, PWD . DS . "stat" . DS . "cookie.txt");
// cookie file
и сам вызов
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$x = count($urls);
$mcurl = new MCurl;
$mcurl->threads = $x;
$mcurl->timeout = 60;
// нам нужна максимально быстрая скачка, пусть теряются медленные страницы
unset ($results);
// очищаем массив $results (если он использовался раньше где-то в коде)
$mcurl->multiget($urls, $results);
// в массиве $results - контент страниц
for ($i = 0; $i < $x; $i++) {
  preg_match("#.+#smi", $results[$i], $body); // выдераем какой-то кусок текста
  unset ($body[0]);
  file_put_contents(htlm_dir . md5($body[1]) . '.html', $body[1]);
  unset ($body[1]);
  unset ($results[$x]);
}
И собственно вопрос, почему не работает, тут где-то собака зарыта, когда-то мне эту проблему решить удавалось(вроде)
сейчас память напрочь отшибло.
PHP
1
2
        curl_setopt($conn[$i], CURLOPT_COOKIEJAR, COOKIE);
        curl_setopt($conn[$i], CURLOPT_COOKIEFILE, COOKIE);
Добавлено через 2 часа 45 минут
Сделал $useragent = trim($this->all_useragents[array_rand($this->all_useragents)]);
И вуаля, заработало... оказывается что ещё из-за UA может не работать, что-то новенькое для меня.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2011, 17:57
Ответы с готовыми решениями:

CURLOPT_COOKIEFILE как правильно составлять cookie для отправки?
Добрый день! Помогите разобраться как правильно нужно составлять куки в файле для отправки на конкретный сайт? К примеру есть адрес...

Как вручную записать куки для CURLOPT_COOKIEFILE
Как записывать куки в формате Netscape я разобрался, но вот в документации написано, что А как записать HTTP заголовками ? Какой должен...

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией Debug, то всё в порядке. При запуске же...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.11.2011, 17:57
Помогаю со студенческими работами здесь

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с недавних пор мышь стала работать через раз....

Ноутбук работает только с Wi Fi роутера дома, в кафе не работает и везде. Почему?
Подскажите пожалуйста, почему у меня ноутбук с виндой 7, работает вай фай только дома с роутера. А когда я прихожу в кафе или в парк, у...

Решил портировать игру на андроид но управление не работает. Прыжок и стрельба работает
Решил портировать игру на андроид но управление не работает. Прыжок и стрельба работает. Очень странно. В этот раз решился заморочится и...

SelText в textBox'e отчёта не работает или работает не так как в форме?
Пробовал всяко-разно выудить выделенный текст - не выходит. Пишет: &quot;Введенное выражение содержит недопустимую ссылку на свойство...

В Windows Forms некоректно работает метод, хотя в консоли работает правильно
//Данный метод должен заменять все элементы в массиве на 1, после найменьшего. public string getNewArray(int array) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru