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



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

При работе с FTP выполняются следующие стандартные действия:

  • соединение с удаленным FTP-сервером;
  • регистрация на FTP-сервере;
  • загрузка файлов с сервера или на сервер;
  • закрытие соединения.

Работа с FTP начинается с открытия «потока» (stream) и делается это функцией «ftp_connect()»:

ftp_connect("имя хоста","порт","timeout");

Вместо «имя хоста» пропиcываем имя сайта, к которому хотим подключиться. В параметре «порт» указываем ftp-порт удаленного сервера (обычно «21»), а в «timeout» — на какое время (в секундах) хотим открыть соединение. Результат выполнения функции нужно присвоить какой-либо переменной, в нашем примере это переменная $open:

$open = ftp_connect("ftp.server.com", 21, 30);

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Chinese (Traditional)EnglishJapaneseRussianUkrainian

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: