Джонн22 открыл . Это будет бомба. Записывайтесь!
Подробнее о курсе и вообще о Джонне напишу позже. А пока сабж.
Долго мучился с заливкой файлов на большое количество ftp (например, фрихостинги).
И вот написал на PHP серверный заливщик файлов на фрихостинги для этого дела. Однопоточный, без прокси. Зато надёжный.
Этот скрипт ложится туда же, где лежат папки с дорами. Рядом кидается файл domains.txt, в котором на каждой строчке перечисленны аккаунты, и указана папка дора.
Формат записи аккаунта такой же, как выдаёт магазин аккаунтов wmaid.com, только в конце добавлена локальная папка. Самый адекватный, кстати, магазин аккаунтов, рекомендую. Ну, а хостинг сайтов html, использую 000webhost.
То есть формат аккаунта фрихостинга -
http://door.narod.ru/;ftphost;login;password;/public_html/;door1
Здесь /public_html/ - это папка на хостинге, если её нету, то ставьте слеш (/), а door1 - папка с дором на вашем серваке.
Cкрипт, файл domains.txt и папки с дорами должны лежать в одном месте! Удобно в экселе добавлять к купленным аккаунтам список папок с дорами, взятый из TotalCommander.
Прежде чем взять скрипт, откройте и насладитесь креативом
.
Или просто посмотреть:
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <?php set_time_limit (0); //error_reporting(E_ALL); $domains = explode("\n", trim(file_get_contents ('domains.txt'))); // Режем в массив по ВК $domains = array_diff($domains, $array_dels=array('')); // Удаляем элементы массива с пустым значением $domains = array_values ($domains); // Восстанавливаем нумерацию - возвращаем значения массива в виде списка $kol = count($domains); // количество доменов @unlink("log.txt"); // Удаляем старый лог echo "<h1>Заливщик файлов на фрихи</h1> <em>Список фрих в формате http://door.narod.ru/;ftphost;login;password;/public_html/;door1 ложим в файл domains.txt. <br>Сюда же ложим папки с дорами.</em><br><br>"; for ($n=0;$n<$kol;$n++) { $err = ""; $stroka = explode(";", trim($domains[$n])); // режем в массив $filelist = glob($stroka[5]."/*.*"); // Сохраняем в список названия файлов в каталоге // устанавливаем ftp-соединение $conn_id = @ftp_connect($stroka[1]); // логинимся $login_result = @ftp_login($conn_id, $stroka[2], $stroka[3]); // Проверяем соединение if ((!$conn_id) || (!$login_result)) { // Если не соединились echo "<font color=FF0000>Не удалось соединиться с - ".$stroka[1]." юзер - ".$stroka[2]."</font>\n<br>"; file_put_contents("log.txt", "Не удалось соединиться с - ".$stroka[1]." юзер - ".$stroka[2]."\n", FILE_APPEND | LOCK_EX); // Пишем ошибку в лог $err = " с ошибками!!!"; //переход к следующему акку continue; } else { // Если соединились echo "Соединились - <b>".$stroka[0]."</b>\n<br>"; // Переходим в нужные папки ftp_chdir($conn_id, trim($stroka[4], "/")); chdir(trim($stroka[5], "/")); // Копируем файлы по одному for ($f=0;$f<count($filelist);$f++) { $file = basename($filelist[$f]); // название очередного заливаемого файла // Заливаем файл $upload = @ftp_put($conn_id, $file, $file, FTP_BINARY); // Проверяем, загрузилось ли if (!$upload) { echo "<font color=FF0000>Ошибка загрузки - ".$filelist[$f]."</font>\n<br>"; file_put_contents("../log.txt", "Ошибка загрузки - ".$filelist[$f]."\n", FILE_APPEND | LOCK_EX); // Пишем ошибку в лог $err = "<font color=FF0000> с ошибками!!!</font>"; } } // конец копирования файла } // конец проверки соединения // Закрываем ftp-соединение ftp_close($conn_id); chdir(".."); // вернулись в родительский каталог echo "Скопировали <a target=_blank href=".$stroka[0].">".$stroka[0]."</a>".$err."<br><br>"; flush(); } // Следующее ftp-соединение echo "<h1>Готово! <a target=_blank href=log.txt>Лог ошибок</a></h1>"; |