boolean ftp_fget(resource ftp, resource file, string filename, integer mode, integer position)
Функция ftp_fget (листинг 10.15) копирует удаленный файл в открытый поток file. Для этого необходимо с помощью команды fopen или ей подобной создать ресурс file, для того чтобы оперировать им в качестве второго аргумента. Аргумент mode может иметь два значения - FTP_TEXT и FTP_BINARY (иногда их еще называют режимами text и binary). Необязательный аргумент position устанавливает место в файле, с которого необходимо начинать чтение, что позволяет возобновить прерванные сеансы чтения.

| Листинг 10.15. Функция ftp fget_
<?php
// подключение к серверу
if(!($ftp = ftp_connect("www.leonatkinson.com")))
print("Подключение невозможно!<br>n"); exit();
// регистрация
if(!ftp_login($ftp, "anonymous", "corephp@"))
print("Регистрация невозможна!<br>n"); exit();
//открыть локальный файл для записи
if(!$fp = fopen("/tmp/corephp3_examples.tar.gz", "w"))
print("Нельзя открыть файл!<br>n"); exit();
//сохранить удаленный файл в открытом потоке file if(!ftp_fget($ftp, $fp, "/pub/leon/corephp3_examples.tar.gz",
FTP_BINARY))
print("Невозможно получить удаленный файл!<br>n"); 
}
print("Файл загружен!<br>n");
// закрыть локальный файл
fclose($fp);
// закрыть соединение
ftp_close($ftp);
?>

boolean ftp_fput(resource ftp, string remote, integer file, integer mode, integer position)
Функция ftp_fput (листинг 10.16) создает файл на удаленном сервере из содержимого открытого потока file. Аргумент ftp содержит значение, возвращаемое функцией ftp_connect. Аргумент remote является путем к создаваемому файлу на удаленном сервере. Аргумент file является идентификатором файла, возвращенного функцией fopen или ей подобной. Аргумент mode может иметь два значения - FTP_TEXT и FTP_BINARY (иногда их еще называют режимами text и binary). Необязательный аргумент position устанавливает место в файле, с которого необходимо начинать запись, что позволяет возобновить прерванные сеансы записи.

Листинг 10.16. Функция ftpfput

<?php
// подключение к серверу
if(!($ftp = ftp_connect("localhost")))
print("Подключение невозможно!<br>n"); exit();
// регистрация
if(!ftp_login($ftp, "anonymous", "corephp@"))
print("Регистрация невозможна!<br>n"); exit();
// открыть локальный файл
if(!($fp = fopen("data.txt", "r")))
print("Невозможно открыть локальный файл!<br>n"); exit();
// записать файл на удаленный сервер
if(!ftp_fput($ftp, "/pub/data.txt", $fp, FTP_TEXT))
print("Невозможно загрузить удаленный файл!<br>n"); exit();
print("Файл загружен!<br>n");
// Закрыть локальный файл
fclose($fp);
// Закрыть соединение
ftp_close($ftp);
?> 
boolean ftp_get(resource ftp, string local, string remote, integer mode, integer position)
Функция ftp_get (листинг 10.17) предназначена для копирования с удаленного сервера в локальную файловую систему. Аргумент link содержит значение, возвращаемое функцией ftp_connect. Аргументы local и remote задают соответствующие пути. Аргумент mode может иметь два значения - FTP_TEXT и FTP_BINARY, которые иногда называются режимами text и binary. Необязательный аргумент position устанавливает место в файле, с которого необходимо начинать чтение, что позволяет возобновить прерванные сеансы чтения.

| Листинг 10.17. Функция ftp get_
<?php
// подключение к серверу
if(!($ftp = ftp_connect("www.leonatkinson.com")))
{
print("Подключение невозможно!<br>n"); exit();
}
// регистрация
if(!ftp_login($ftp, "anonymous", "corephp@"))
{
print("Регистрация невозможна!<br>n"); exit();
}
// сохранить файл в каталоге tmp ftp_get($ftp,
"/tmp/data.bin",
"/pub/leon/corephp3_examples.tar.gz",
FTP_BINARY);
print("Файл загружен!<br>n"); // закрыть соединение ftp_close($ftp);
?>

value ftp_get_option(resource ftp, integer option)
Функция ftp_get_option предназначена для получения одного из двух вариантов FTP-соединения. Необходимо предоставить ресурс, возвращаемый функцией ftp_connect. Допустимые параметры приведены в табл. 10.7.
boolean ftp_login(resource ftp, string username, string password)
После подключения к FTP-серверу для идентификации пользователя необходимо прибегнуть к услугам функции ftp_login. При этом необходимо указать все три аргумента, даже при анонимном типе подключения. Пример использования этой функции показан в примере использования функции ftp_connect.
integer ftp_mdtm(resource ftp, string path)
Функция ftp_mdtm (листинг 10.18) возвращает последнюю модификацию файла, имя которого указано в аргументе path.
Операции ввода-вывода на сетевом уровне
Листинг 10.18. Функция ftpmdtm

<?php
// подключение к серверу
if(!($ftp = ftp_connect("www.leonatkinson.com")))
{
print("Подключение невозможно!<br>n"); exit();
}
// регистрация
if(!ftp_login($ftp, "anonymous", "corephp@"))
{
print("Регистрация невозможна!<br>n"); exit();
}
print(" Размер: " .
ftp_size($ftp, "/pub/leon/corephp3_examples.tar.gz") .
"<br>n");
print("Модифицирован: " .
date("Y-m-d",
ftp_mdtm($ftp, "/pub/leon/corephp3_examples.tar.gz")) .
"<BR>n");
// закрыть соединение ftp_close($ftp);
?>

string ftp_mkdir(resource ftp, string directory)
Функция ftp_mkdir (листинг 10.19) создает каталог на удаленном сервере. Если невозможно создать каталог, возвращается значение FALSE.

I Листинг 10.19. Функция ftp mkdir_
<?php
// подключение к серверу
if(!($ftp = ftp_connect("localhost")))
{
print("Невозможно подключиться!<br>n"); exit();

// регистрация
if(!ftp_login($ftp, "leon", "corephp@"))
{
print("Регистрация невозможна!<br>n"); exit();
}
// создать каталог
$result = ftp_mkdir($ftp, "corephp"); if($result)
{
print(" Создан каталог: $result<br>n");
}
else
{
print(" Невозможно создать каталог corephp!<br>n");
}
// удалить каталог corephp if(!ftp_rmdir($ftp, "corephp"))
{
print(" Невозможно удалить каталог corephp!<br>n");
}
// закрыть соединение ftp_close($ftp);
?>