Языки программирования

Работа с FTP средствами PHP

Протокол FTP (File Transfer Protocol — протокол передачи файлов) — один из старейших протоколов Интернета, предназначенный для передачи файлов между двумя хостами.

При работе с 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, тем самым давая возможность использовать протокол передачи файлов без ознакомления со всеми его премудростями.
Самоучитель по PHP