<?php
// --------------------------------------------------------------------
// THE TRIGGER
// --------------------------------------------------------------------
// установка переменных
// $ftproot будет выбираться из списка доступных на фтп папок
$ftproot = "/domen.ru/www/";
// $srcroot папка которую надо скопировать. установлена как глобальная настройка
$srcroot = "/home/u14731/domen.ru/www/galaxy/wordpress/";
// connect to the destination FTP & enter appropriate directories both locally and remotely
$ftpc = ftp_connect("ftp_host");
$ftpr = ftp_login($ftpc,"login","password");
// ----------------------
// НЕОБЯЗАТЕЛЬНАЯ ЧАСТЬ, ПРОВЕРКА СОЕДИНЕНИЯ
// ----------------------
if ((!$ftpc) || (!$ftpr)) { echo "FTP connection not established!"; die(); }
if (!chdir($srcroot)) { echo "Could not enter local source root directory."; die(); }
if (!ftp_chdir($ftpc,$ftproot)) { echo "Could not enter FTP root directory."; die(); }
// ----------------------
// ПРОВЕРКА СОЕДИНЕНИЯ ЗАКОНЧЕНА
// ----------------------
// Запуск функции рекурсивного копирования
ftpRec ();
// закрытие FTP соединения
ftp_close($ftpc);
// --------------------------------------------------------------------
// THE ACTUAL FUNCTION
// --------------------------------------------------------------------
function ftpRec ()
{
global $srcroot;
global $ftproot;
global $ftpc;
global $ftpr;
// заходим в локальную директорию
chdir($srcroot);
// Проверяем, существует ли папка, и одновременно переходим в нее
if (!ftp_chdir($ftpc,$ftproot))
{
// директория не существует. создадим ее
echo "ШЛЯПА";
ftp_chdir ($ftpc,$ftproot);
}
if ($handle = opendir("."))
{
//Пока папки не закончаться...
while (false !== ($fil = readdir($handle)))
{
// Если имя папки не точка и не две точки
if ($fil != "." && $fil != "..")
{
// проверяем, файл это или папка
if (!is_dir($fil))
{
// если это файл, загружаем его
ftp_put($ftpc, $ftproot.$fil, $fil, FTP_BINARY);
}
else
{
// Если это папка, обходим ее
if ($fil == "templates")
{
// Если папка называется bugaga, ничего выполняем
}
else
{
// В противном случае выполняем все с самого начала, но уже для этой папки
ftpRec ($fil."/");
chdir ("../");
}
}
}
}
closedir($handle);
}
}
?>