Помощник
|
Скрипт для закачивания файлов с другого сайта |
Чеснок
|
Сообщение
#1
|
||
|
|
||
|
|||
anchous |
27.12.2013, 4:48;
Ответить: anchous
Сообщение
#2
|
|
Чеснок, телепорт не? потом тупо копипастишь урлы с морды и аляулю
-------------------- |
|
|
Чеснок
|
Сообщение
#3
|
|
телепорт десктопный, мне нужно на сайт сразу (в РБ исходящий канал 500килобит, я 100г заливать буду годы)
Нужно нечто наподобие PHP RapidGet Pro (только ни где не могу скачать) Сообщение отредактировал Чеснок - 27.12.2013, 6:09 -------------------- |
|
|
ArhStrAngeR |
27.12.2013, 10:15;
Ответить: ArhStrAngeR
Сообщение
#4
|
|
Народ, подскажите каким скриптом можно закачать себе на сайт 40000 файлов (примерно 100 гигов), смысл: кормлю ему список урлов (или рядом лежит link.txt) а он качает в папку в которой лежит сам то что я ему скормил. (как-то, а то время на исполнение скрипта не резиновое). Я думаю вот это решит Вашу проблему. |
|
|
Чеснок
|
Сообщение
#5
|
|
ArhStrAngeR, Гугл решает многие мои проблеммы и я около суток занимаюсь этой. Мне интересен php скрипт который будет прост и не будет требовать колупания в консолях.
-------------------- |
|
|
devuser |
27.12.2013, 17:25;
Ответить: devuser
Сообщение
#6
|
|
Чеснок, скрипт очень простой, за 10 минут написал в качестве разминки.
Но нужно, чтобы он не вылезал за max_execution_time в php.ini Или запускать его из командной строки. Читает все ссылки из links.txt Создает в папке $subdir (в нашем случае /test) каталоги, как у источника. В нашем случае файл jquery-1.8.3.min.js попадет в корень (в каталог /test), а файл html5.js будет лежать в каталоге /test/svn/trunk/ Каталог $subdir должен быть доступен для записи. php <? $subdir = '/test'; $count = 0; $links = @file_get_contents('links.txt'); if ($links) { $links = explode("\n", $links); if (count($links > 0)) { foreach ($links as $link) { $data = file_get_contents(trim($link)); $filename = (strpos($link, '?') === false) ? parse_url($link) : parse_url(substr($link, 0, strpos($link, '?'))); $dir = $_SERVER['DOCUMENT_ROOT'] . $subdir . substr($filename['path'], 0, strrpos($filename['path'], '/') + 1); $file = substr($filename['path'], strrpos($filename['path'], '/') + 1); @mkdir($dir, 0777, true); file_put_contents($dir . $file, $data); $count += 1; } echo 'Работа завершена. Сохранено файлов: ' . $count; } else { echo 'В файле links.txt нет ссылок'; } } else { echo 'Файл links.txt не найден'; } ?> links.txt http://code.jquery.com/jquery-1.8.3.min.js
http://html5shiv.googlecode.com/svn/trunk/html5.js Сообщение отредактировал devuser - 27.12.2013, 17:26 -------------------- |
|
|
Чеснок
|
Сообщение
#7
|
|
чтобы он не вылезал за max_execution_time в php.ini Я тот ещё программер, но краем мозга догадываюсь, что скрипт должен выполняться (а выполняется он пока файл с ссылками не пуст?) меньше чем за max_execution_time? Как раччитать сколько времени ему понадобиться на закачку 50000 файлов? -------------------- |
|
|
devuser |
28.12.2013, 0:53;
Ответить: devuser
Сообщение
#8
|
|
Чеснок, есть возможность менять этот параметр?
Если через .htaccess, то так php_value max_execution_time 0 И он станет без ограничений -------------------- |
|
|
Чеснок
|
Сообщение
#9
|
|
Ну если у меня есть возможность залить к себе 100 гигов, то это не фрихост )) изменю, я имею ввиду нет ли каких ограничений (а ну как сервер зависнет или ещё чегото там )
-------------------- |
|
|
devuser |
28.12.2013, 1:27;
Ответить: devuser
Сообщение
#10
|
|
|
Чеснок, да вроде не должен
В крон задание добавьте каждое 28 декабря в 4 часа ночи. Запустится в четыре ночи и будет ждать следующего года. Хотя лучше руками проверить, на файле из 1000 ссылок, примерно, на коленке писал Кстати, можно немного апгрейдить Каждые 1000 файлов (задается в $log_when_count) будет писать в log.txt сколько скачал из скольки <? $subdir = '/test'; $count = 0; $log_when_count = 1000; $links = @file_get_contents('links.txt'); if ($links) { $links = explode("\n", $links); if (count($links > 0)) { foreach ($links as $link) { $data = file_get_contents($link); $filename = (strpos($link, '?') === false) ? parse_url($link) : parse_url(substr($link, 0, strpos($link, '?'))); $dir = $_SERVER['DOCUMENT_ROOT'] . $subdir . substr($filename['path'], 0, strrpos($filename['path'], '/') + 1); $file = substr($filename['path'], strrpos($filename['path'], '/') + 1); @mkdir($dir, 0777, true); file_put_contents($dir . $file, $data); $count += 1; if (($count % $log_when_count) == 0) { $log = file_exists('log.txt') ? file_get_contents('log.txt') : ''; file_put_contents('log.txt', 'Скачано ' . $count . ' файлов из ' . count($links) . "\n" . $log); } } echo 'Работа завершена. Сохранено файлов: ' . $count; } else { echo 'В файле links.txt нет ссылок'; } } else { echo 'Файл links.txt не найден'; } ?> Будет полезно для ручной корректировки, если что-то упадет. Удалили N строк из links.txt и заново запустили.
Сообщение отредактировал devuser - 28.12.2013, 1:29 -------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Посоветуйте массажер для спины и шеи | 9 | Boymaster | 859 | Сегодня, 13:56 автор: Vmir |
|
Какой % отказов нормален для сайта? | 14 | Aloof | 3335 | Сегодня, 13:50 автор: Vmir |
|
Люблю творить! Статьи для вас Копирайтинг- моя жизнь! |
312 | Zoya83 | 190637 | Сегодня, 7:51 автор: DimonX |
|
Современный сервис для быстрого и безопасного обмена валют. | 15 | CryptoTims | 4942 | Вчера, 22:32 автор: CryptoTims |
|
Rebex.io – Ваша инновационная платформа для обмена криптовалюты! | 2 | Rebex | 817 | Вчера, 20:04 автор: Rebex |
Текстовая версия | Сейчас: 23.4.2024, 14:19 |