Форум → Программирование → PHP для идиотов → Как выкачать по http файлы?
Как выкачать по http файлы?
Страницы: ← Следующая страница →
-
Понадобилось мне значит грабер файлового контента одного сайтика написать. Ссылки я пропарсил с него, допустим они в массиве у меня. Как можно на php выкачать кучу файлов, в потоках, с очередью да еще и узнавать сколько закачено? curl?
Как узнать запущен ли скрипт? писать что нить в файл?С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
1 июля 2010 г. 14:09, спустя 43 минуты 30 секунд
wget или curl , мне больше первый нравится
как вывести прогресс закачки - хз
с очередью - распараллеливаешь потоки, статус пишешь куда нибудь, при следующем запуске проверяешь статус
я пишу в БД + дату, если дата больше опред числа - процесс уходит в треш -
1 июля 2010 г. 14:34, спустя 24 минуты 55 секунд
Faster, wget и curl не умеют многопоточно качать.
я тоже думал что умеют :)Сапожник без сапог -
-
1 июля 2010 г. 14:54, спустя 4 минуты 19 секунд
phpdude,
для одного потока имелось ввиду
а как в граббере рулить потоками я не писал :)Спустя 131 сек.хотя прогресс можно узнать сравнив filesize то что скачалось и размерчик дернутый их хидера на сервере.
так что ТС - все в твоих руках :) -
1 июля 2010 г. 15:09, спустя 14 минут 47 секунд
Думаю для граббера нахер не нужен прогресс, особенно учитывая что это под один сайт пишется. Вместо прогресса достаточно будет сделать запись по общему кол-ву файлов для скачивания и после каждого скаченного обновлять счетчик закачек. Примерный прогресс будет видно, а большего нах не нужно по сути. -
1 июля 2010 г. 15:19, спустя 9 минут 32 секунды
Так, а допустим время работы скрипта 60 секунд, значит скрипт отвечать не будет?С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
1 июля 2010 г. 15:22, спустя 3 минуты 17 секунд
ололло!!!
php curl extCURLOPT_WRITEFUNCTION The name of a callback function where the callback function takes two parameters. The first is the cURL resource, and the second is a string with the data to be written. The data must be written by using this callback function. Must return the exact number of bytes written or this will fail.
я пользовался, катит, было приятно сомтреть бегущие цифаркеСапожник без сапог -
1 июля 2010 г. 18:54, спустя 3 часа 31 минуту 50 секунд
ivanscm, сделай чтоб было больше чем 60 секунд. Или вообще по крону его пиздяч. -
1 июля 2010 г. 19:56, спустя 1 час 2 минуты 8 секунд
Да, я решил по крону проверять размер исходный и текущий, и докачивать.С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
1 июля 2010 г. 20:33, спустя 37 минут 32 секунды
пока курю http://www.ibm.com/developerworks/ru/library/os-php-multitask/index.htmlСпустя 162 сек.о! http://i-novice.net/parallelim-process-na-php/С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
1 июля 2010 г. 20:34, спустя 30 секунд
полная хуйня статья, хуйня потому что идея - полная хуйня.
пока курю http://www.ibm.com/developerworks/ru/library/os-php-multitask/index.htmlСпустя 162 сек.о! http://i-novice.net/parallelim-process-na-php/Сапожник без сапог -
1 июля 2010 г. 20:39, спустя 4 минуты 43 секунды
и что теперь не морочить голову? а так руки чешуться попробывать :)Спустя 206 сек.а если еще так ебануть http://php.net/manual/en/function.curl-multi-select.phpС возвращением, Пiха! hyperoff.ru - качественный хостинг php -
1 июля 2010 г. 21:43, спустя 1 час 4 минуты 27 секунд
подсмотренное решение:
foreach($processes as $p)
{
passthru('('.__PHP.' -f '.PATH_DIR.'cron/grabber.php '.$p.' & ) >> /dev/null 2>&1');
}
в качестве $p у меня передается айдишник записи в БД таблице
мультикурлы сосут по сравнению с этим способом -
1 июля 2010 г. 21:49, спустя 6 минут 21 секунду
мультикурлы сосут по сравнению с этим способом
да ну? давай поспорим, а?Спустя 27 сек.что будет с твоим сервером, если запустить например 500 паралельных таких "задач"? правильно, память кончится меньше чем за 5 секунд.Спустя 75 сек.а если еще так ебануть http://php.net/manual/en/function.curl-multi-select.php
для пхп самый верный метод, остальное изза невыводимых через зад каллоидных образований, создающих жуткую мигрень в головном мозге и подобные куски "кода"foreach($processes as $p)
{
passthru('('.__PHP.' -f '.PATH_DIR.'cron/grabber.php '.$p.' & ) >> /dev/null 2>&1');
}Сапожник без сапог
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!