Суббота, 18.11.2017
TiM
Меню сайта
Категории раздела
Мои статьи [9]
Arduino / ATMEGA [9]
ESP8266 [1]
OrangePi PC и Raspberry Pi 2 Model B V1.1 [4]
Шаговые двигатели [1]
PHPProBid [0]
CMS DLE (DataLife Engine) [0]
CMS Joomla [13]
SugarCRM [5]
Базы данных [5]
PHP скрипты [16]
Bash и скрипты [26]
IP АТС Elastix / Asterisk [12]
CentOS [6]
Debian [8]
Lubuntu / LinuxMINT [29]
Windows [23]
Умный дом [2]
Сервера [16]
Natural Selection [1]
System Shock 2 [1]
Форма входа
Главная » Статьи » PHP скрипты

PHP: Выкачиваем файлы на FTP сервер, с помощью PHP

 Перенести файлы с одного хоста на другой, выкачивать вручную и перезаливать, очень нудно. Было принято решение, написать скрипт, который пробежится по всем папкам сайта, и перезальёт их на удалённый FTP...


 
  1. <?php
  2.  
  3. @ini_set("display_errors","0");
  4.  
  5. $sdelete = 1; // Удалить скрипт после завершения (1|0)
  6. $ftp_server = "XXX.XXX.XXX.XXX"; // IP FTP Сервера
  7. $ftp_login = "ppc@serj.ws"; // FTP Логин
  8. $ftp_pass = "YieyCnfklsjfmfi"; // FTP Пароль
  9. $ftp_port = 21; // FTP Порт
  10. $ftp_timeout = 100; // Таймаут
  11. $pause = 0;
  12. $l_folder = '/home/kiwi/project/kiwi.kz'; // Директория откуда выкачивать
  13. $r_folder = '/root/dumps/kz/kiwikz'; // ФТП директория куда закачивать
  14.  
  15. if(!function_exists('scandir')){
  16. function scandir($d ,$s=0){
  17. $dh = opendir($d);
  18. while (false !== ($f = readdir($dh)))
  19. $fs[] = $f;
  20. $s?sort($fs):rsort($fs);
  21. return $fs;
  22. }
  23. }
  24.  
  25. function fold($rootDir, $allData=array()) {
  26. $invisibleFileNames = array(".", "..");
  27. $dirContent = scandir($rootDir);
  28. foreach($dirContent as $key => $content) {
  29. $path = $rootDir.'/'.$content;
  30. if(!in_array($content, $invisibleFileNames)) {
  31. if(is_file($path) && is_readable($path)) {
  32. preg_match('|\/(.*)\/|',$path,$res);
  33. $allData[0][] = $path;//files
  34. $allData[1][] = $res[0];//folders
  35. }elseif(is_dir($path) && is_readable($path)) {
  36. $allData = fold($path, $allData);
  37. }
  38. }
  39. }
  40. return $allData;
  41. }
  42.  
  43. $b = fold($l_folder);
  44. $count = count($b[1]);
  45. $open = ftp_connect($ftp_server,$ftp_port,$ftp_timeout);
  46. if(!ftp_login($open,$ftp_login,$ftp_pass))
  47. exit("No connect");
  48.  
  49. for ($i=0;$i<$count;$i++) {
  50. if ($b[1][$i] != trim($l_folder) . "/") {
  51. $dir = str_replace(trim($l_folder) . "/", "", $b[1][$i]);
  52. $dir = $r_folder . substr($dir, 0, -1);
  53. ftp_mkdir($open, $dir);
  54. }
  55. }
  56.  
  57. $count1 = count($b[0]);
  58.  
  59. for ($i=0;$i<$count1;$i++) {
  60. $file = $b[0][$i];
  61. $newfile = $r_folder . str_replace($l_folder,"",$file);
  62. $newfile = str_replace("//","/",$newfile);
  63.  
  64. ftp_put($open, $newfile, $file, FTP_BINARY);
  65. sleep($pause);
  66. }
  67. ftp_close($open);
  68. if ($sdelete==1) unlink($_SERVER["SCRIPT_FILENAME"]);
  69.  
  70. echo 'Complete :)';
  71. ?>

Источник: http://serj.ws/content/194

Категория: PHP скрипты | Добавил: Timur (22.04.2016)
Просмотров: 222
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
YANDEX
Яндекс.Метрика
Сайты
  • Харьков Видео-Реклама
  • Харьковский Юридический Альянс
  • Обеды в офис
  • Снежка
  • Оцифровка кинопленки
  • TiM ©
    Харьков 2017