Класс FTP
Класс FTP позволяет с использованием протокола передачи файлов FTP загружать файлы на удаленный сервер, переименовывать их, перемещать, удалять и устанавливать права на доступ. Также класс содержит функцию создания "зеркал" - точных копий папок с локального сервера.
Важно: SFTP и SSL FTP не поддерживаются, только стандартный FTP.
Инициализация Класса
Как и многие другие классы в CodeIgniter, класс FTP инициализируется функцией$this->load->library:
$this->load->library('ftp');
После загрузки, объект будет доступен по вызову: $this->ftp
Примеры Использования
В этом примере открывается соединение с FTP сервером, загружается локальный файл в режиме ASCII . Права на файл устанавливаются 755. Примечание: установка прав на файл доступна только в PHP начиная от версии 5.
$this->load->library('ftp');
$config['hostname'] = 'ftp.site.com';
$config['username'] = 'логин';
$config['password'] = 'пароль';
$config['debug'] = TRUE;
$this->ftp->connect($config);
$this->ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);
$this->ftp->close();
В этом примере класс возвращает листинг файлов на сервере .
$this->load->library('ftp');
$config['hostname'] = 'ftp.site.com';
$config['username'] = 'логин';
$config['password'] = 'пароль';
$config['debug'] = TRUE;
$this->ftp->connect($config);
$list = $this->ftp->list_files('/public_html/');
print_r($list);
$this->ftp->close();
Этот код создает копию локальной директории на удаленном сервере.
$this->load->library('ftp');
$config['hostname'] = 'ftp.site.com';
$config['username'] = 'логин';
$config['password'] = 'пароль';
$config['debug'] = TRUE;
$this->ftp->connect($config);
$this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');
$this->ftp->close();
Описание Функций
$this->ftp->connect()
Подсоединение и залогинивание к FTP серверу. Настройки подключения можно задать вручную в массиве или заранее прописать в конфигурационном файле.
Пример установки собственных параметров :
$this->load->library('ftp');
$config['hostname'] = 'ftp.your-site.com';
$config['username'] = 'your-username';
$config['password'] = 'your-password';
$config['port'] = 21;
$config['passive'] = FALSE;
$config['debug'] = TRUE;
$this->ftp->connect($config);
Установка параметров FTP в конфигурационном файле
Если Вы желаете сохранить настройки в конф. файле, то следует создать файл ftp.php, добавить в нем массив $config . Затем сохраните файл по адресу config/ftp.php и настройки из него будут использоваться по умолчанию каждый раз при подключении к FTP серверу.
Доступные опции :
- hostname - имя FTP сервера для подключения .Например: ftp.example.com
- username - FTP логин.
- password - FTP пароль.
- port - номер порта. Обычно 21.
- debug - TRUE/FALSE (boolean). Включение/отключение режима отладки и отображения ошибок.
- passive - TRUE/FALSE (boolean). Установка пассивного режима. По умолчанию он включен.
$this->ftp->upload()
Загрузка файлов на сервер. Параметры: локальный файл, имя файла на удаленном сервере после закачки. Необязательные параметры: режим и права на файл.
$this->ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);
Доступные режимы закачки: ascii, binary, и auto (по умолчанию). Если используется режим auto, то режим определяется по расширению файла.
Установка прав на файл доступна, если используется PHP 5. Права должны быть восьмеричным (тип - octal) значением.
$this->ftp->rename()
Позволяет переименовывать файлы и папки на сервере. Параметры: исходные файл/папка и новое название файла/папки.
// Переименовываем файл green.html в blue.html
$this->ftp->rename('/public_html/foo/green.html', '/public_html/foo/blue.html');
$this->ftp->move()
Перемещение файла. Параметры: исходный и конечный пути файла :
// Перемещаем blog.html из папки "joe" в "fred"
$this->ftp->move('/public_html/joe/blog.html', '/public_html/fred/blog.html');
Примечание: если конечное имя файла изменено, то файл будет также переименован
$this->ftp->delete_file()
Удаление файла. Параметры: путь к файлу .
$this->ftp->delete_file('/public_html/joe/blog.html');
$this->ftp->delete_dir()
Функция позволяет удалять папки и все, что они содержат. Параметр - путь к папке с конечным слешем (/).
Важно Будьте ОЧНЬ аккуратны с этой функцией, так как она удаляет всё, что находится в папке, включая и подпапки. Перед использованием убедитесь, что путь к папке корректен. Для этого можно использовать функцию list_files() для отображения содержимого папки.
$this->ftp->delete_dir('/public_html/path/to/folder/');
$this->ftp->list_files()
Возвращает содержимое папки в виде массива. Аргумент - имя папки.
$list = $this->ftp->list_files('/public_html/');
print_r($list);
$this->ftp->mirror()
Создает точную копию (т.н."зеркало") локальной директории на удаленном сервере, вместе со всеми подпапками и файлами. Структура директории полностью сохраняется.. Функции следует указать путь к локальной папке и ее будущему расположению на удаленном сервере:
$this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');
$this->ftp->mkdir()
Позволяет создавать папки на сервере Права устанавливаются восьмеричным (octal) значением (Только в PHP 5).
// Создаем папку "bar"
$this->ftp->mkdir('/public_html/foo/bar/', 0777);
$this->ftp->chmod()
Позволяет устанавливать права на файл или папку. В параметрах укажите путь в файлу/папке и желаемые права :
// Установка прав на папку "bar" 777
$this->ftp->chmod('/public_html/foo/bar/', 0777);
$this->ftp->close();
Закрывает соединение с FTP сервером .