Основные возможности PHP при работе с FTP
ftp_get()
ftp_login()
ftp_quit()
Протокол FTP (File Transfer Protocol - протокол передачи файлов) - один из старейших протоколов Интернета, предназначенный для передачи файлов между двумя хостами.
Как правило, при работе с FTP выполняются следующие стандартные действия:
соединение с удаленным FTP-сервером
регистрация на FTP-сервере
загрузка файлов с сервера или на сервер
закрытие соединения
Соединение с FTP-сервером
Соединение с удаленным FTP-сервером выполняется с помощью функции ftp_connect:
Синтаксис:
ftp_connect (string host [, int port [, int timeout]])
В качестве обязательного параметра эта функция принимает имя хоста host, с которым необходимо установить соединение. Второй необязательный параметр port указывает на номер порта, через который осуществляется соединение. Если этот параметр не указан, то соединение осуществляется через порт 21, являющийся стандартным FTP-портом. Третий необязательный параметр определяет максимально время выполнения сценария (тайм-аут) и по умолчанию равен 90 секундам.
Соединение с удаленным FTP-сервером
<?
$host = "ftp://ftp.server.ru";
$connect = ftp_connect($host);
if(!$connect)
{
echo("Ошибка соединения");
exit;
}
else
{
echo("Соединение установлено");
}
?>
Регистрация на FTP-сервере
После того, как соединение установлено, необходимо зарегистрироваться на сервере с определенным именем и паролем. Сделать это можно при помощи функции ftp_login.
Регистрация на FTP-сервере
<?
$user = "maks";
$password = "password";
$result = ftp_login($connect, $user, $password);
?>
Как видно из листинга, функция ftp_login принимает три параметра: дескриптор FTP-соединения, возвращаемый функцией ftp_connect, имя пользователя и пароль.
Замечание: Регистрация на сервере не требуется, если FTP-сервер является анонимным.
Закрытие соединения
По окончании сеанса связи с FTP-сервером, нужно закрыть FTP-соединение с помощью функции ftp_quit, принимающей в качестве единственного параметра дескриптор FTP-соединения:
Синтаксис:
ftp_quit($connect);
Загрузка файлов с сервера
Загрузка файлов с сервера осуществляется при помощи функции ftp_get:
Синтаксис:
bool ftp_get(int ftp_connect, string local_file,
string remote_file, int mode);
Аргумент mode, задающий режим пересылки файлов, должен быть указан как константа FTP_BINARY или FTP_ASCII. Режим FTP_ASCII используется для пересылки файлов, состоящих только из ASCII-символов (т. е. текстовых файлов), а двоичный режим - для пересылки всех остальных файлов.
К примеру:
<?
$local_file = "/users/local.txt";
$remote_file = "remote.txt";
ftp_get($connect, $local_file, $remote_file, FTP_BINARY);
?>