Протокол FTP (File Transfer Protocol — протокол передачи файлов) — один из старейших протоколов Интернета, предназначенный для передачи файлов между двумя хостами.
При работе с FTP выполняются следующие стандартные действия:
Работа с FTP начинается с открытия «потока» (stream) и делается это функцией «ftp_connect()»:
При работе с FTP выполняются следующие стандартные действия:
- соединение с удаленным FTP-сервером;
- регистрация на FTP-сервере;
- загрузка файлов с сервера или на сервер;
- закрытие соединения.
Работа с FTP начинается с открытия «потока» (stream) и делается это функцией «ftp_connect()»:
ftp_connect("имя хоста","порт","timeout");
Вместо «имя хоста» пропиcываем имя сайта, к которому хотим подключиться. В параметре «порт» указываем ftp-порт удаленного сервера (обычно «21»), а в «timeout» — на какое время (в секундах) хотим открыть соединение. Результат выполнения функции нужно присвоить какой-либо переменной, в нашем примере это переменная $open:
Регистрация на FTP-сервере
Зарегистрироваться на сервере очень просто и поможет нам в этом функция «ftp_login».
bool ftp_login ( resource connect, string username, string password )
Функция принимает три параметра: дескриптор FTP-соединения, возвращаемый функцией ftp_connect, имя пользователя и пароль. Пример регистрации на FTP-сервере:
$user = "admin";
$password = "password1";
$result = ftp_login( $connect, $user, $password );
Загрузка файлов с сервера
Загрузка файлов с сервера осуществляется при помощи функции «ftp_get»:
bool ftp_get ( resource connect, string local_file,
string remote_file, int mode );
Пример загрузки файлов с сервера:
$local_file = "/admin/local.txt";
$remote_file = "remote.txt";
ftp_get( $connect, $local_file, $remote_file, FTP_BINARY );
Закрытие соединения
Закрыть FTP-соединение можно с помощью функции «ftp_close», принимающей в качестве единственного параметра дескриптор FTP-соединения:
bool ftp_close ( resource connect );
Удаление файлов с сервера
Удалить файл с FTP-сервера можно с помощью функции «ftp_delete»:
bool ftp_delete ( resource connect, string remote_file );
- connect — дескриптор соединения
- remote_file — имя удаляемого файла
Создание каталога на сервере
Новый каталог можно создать, используя функцию «ftp_mkdir»:
string ftp_mkdir ( resource connect, string directory );
Эта функция возвращает имя созданного каталога или false в случае неудачи. Например:
$dir = "images";
$created_dir = ftp_mkdir( $connect, $dir );
Удаление каталогов
Для удаления каталогов применяется функция «ftp_rmdir»:
bool ftp_rmdir ( resource connect, string directory );
Переименование файлов
Переименовать файлы на FTP-сервере можно с помощью функции «ftp_rename»:
bool ftp_rename ( resource connect, string from, string to );
Узнать размер файла
Функция «ftp_size()» возвращает размер файла, либо значение «-1» в случае неудачи:
echo ftp_size($open, "test.txt");
Я не стал описывать все функции поэтому советую посетить отличный сайт где можно посмотреть все функции для работы с FTP: php.net. Также хочу посоветовать пользоваться проверенным бесплатным FTP клиентом называется он Filezilla. Я сам им пользуюсь, он очень прост и удобен в использовании.
Для чего нужен FTP-клиент?
FTP-клиент — программа для упрощения доступа к FTP серверу. В зависимости от назначения может либо предоставлять пользователю простой доступ к удалённому FTP-серверу в режиме текстовой консоли, беря на себя только работу по пересылке команд пользователя и файлов, либо отображать файлы на удалённом сервере как если бы они являлись частью файловой системы компьютера пользователя, либо и то и другое.
В последних двух случаях FTP-клиент берёт на себя задачу интерпретации действий пользователя в команды протокола FTP, тем самым давая возможность использовать протокол передачи файлов без ознакомления со всеми его премудростями.