ftp_nb_continue()

Продолжает асинхронную операцию (PHP 4 >= 4.3.0, PHP 5)

Описание:

int ftp_nb_continue ( resource ftp_stream )

Продолжает отправку или получение файла в асинхронном режиме.

Список параметров

ftp_stream - Идентификатор соединения с FTP сервером

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Пример. Пример использования ftp_nb_continue()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// продолжение скачивания ...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "При скачивании файла произолшла ошибка...";
exit(1);
}
?>

ftp_nb_fput()

Загружает предварительно открытый файл на FTP сервер в асинхронном режиме (PHP 4 >= 4.3.0, PHP 5)

Описание:

int ftp_nb_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] )

ftp_nb_fput() закачивает данные из дескриптора файла в удалённый файл на FTP сервере.

Разница между это функцией и ftp_fput() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл закачивается.

ftp_stream - Идентификатор соединения с FTP сервером
remote_file - Путь к удалённому файлу.
handle - Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.
mode - Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.
startpos - Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Пример. Пример использования ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Начало закачивания
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// производим какие-то дествия ...
echo ".";

// продолжение закачивания ...
$ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
echo "При закачивании файла произолшла ошибка...";
exit(1);
}

fclose($fp);
?>

ftp_nb_fget()

Загружает предварительно открытый файл на FTP сервер в асинхронном режиме (PHP 4 >= 4.3.0, PHP 5)

Описание:

int ftp_nb_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] )

ftp_nb_fput() закачивает данные из дескриптора файла в удалённый файл на FTP сервере.

Разница между это функцией и ftp_fput() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл закачивается.

Список параметров

ftp_stream - Идентификатор соединения с FTP сервером
remote_file - Путь к удалённому файлу.
handle - Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.
mode - Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.
startpos - Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Пример. Пример использования ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Начало закачивания
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// производим какие-то дествия ...
echo ".";

// продолжение закачивания ...
$ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
echo "При закачивании файла произолшла ошибка...";
exit(1);
}

fclose($fp);
?>

ftp_nb_get()

Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в локальный файл (PHP 4 >= 4.3.0, PHP 5)

Описание:

int ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] )

ftp_nb_get() скачивает удалённый файл с FTP сервера и сохраняет его в локальный файл.

Разница между это функцией и ftp_get() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл cкачивается.

Список параметров

ftp_stream - Идентификатор соединения с FTP сервером
local_file - Путь к локальному файлу (файл будет перезаписан, если уже существует).
remote_file - Путь к удалённому файлу.
mode - Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.
resumepos - Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Пример 1. Пример использования ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// производим какие-то дествия ...
echo ".";

// продолжение скачивания ...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "При скачивании файла произолшла ошибка...";
exit(1);
}
?>

Пример 2. Возобновление скачивания файла с помощью ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
filesize("test"));
// ИЛИ: $ret = ftp_nb_get($my_connection, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

// производим какие-то дествия ...
echo ".";

// продолжение скачивания ...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "При скачивании файла произолшла ошибка...";
exit(1);
}
?>

Пример 3. Скачивание файла начиная с позиции 100 в новый файл с помощью ftp_nb_get()

<?php

// Запрет FTP_AUTOSEEK
ftp_set_option($my_connection, FTP_AUTOSEEK, false);

// Начало скачивания
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

/* ... */

// продолжение скачивания ...
$ret = ftp_nb_continue($my_connection);
}
?>

В последнем примере, "newfile" будет на 100 байт меньше, чем "README" на FTP сервере, потому что скачивание начинается со смещения 100. Если не запретить FTP_AUTOSEEK, первые 100 байт файла "newfile" будут содержать '\0'.

ftp_nb_put()

Загружает файл на FTP сервер в асинхронном режиме (PHP 4 >= 4.3.0, PHP 5)

Описание:

int ftp_nb_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] )

ftp_nb_put() загружает локальный файл на FTP сервер.

Отличие этой функции от ftp_put() состоит в том, что загрузка файла происходит в асинхронном режиме, что позволяет программе выполнять другие операции во время загрузки.

Список параметров

ftp_stream - Идентификатор соединения с FTP сервером
remote_file - Путь к файлу на сервере
local_file - Путь к локальному файлу
mode - Режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY
startpos - Позиция в файле, с которой начинается загрузка

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Пример использования ftp_nb_put() example

<?php

// Начало загрузки
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// производим какие-то дествия ...
echo ".";

// продолжение загрузки ...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "При загрузке файла произолшла ошибка...";
exit(1);
}
?>

Пример 2. Возобновление загрузки файла с помощью ftp_nb_put()

<?php

// Начало загрузки
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
FTP_BINARY, ftp_size("test.remote"));
// ИЛИ: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
// FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

// производим какие-то дествия ...
echo ".";

// продолжение загрузки ...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "При загрузке файла произолшла ошибка...";
exit(1);
}
?>

ftp_put()

Загружает файл на FTP сервер (PHP 3 >= 3.0.13, PHP 4, PHP 5)

Описание:

bool ftp_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] )

ftp_put() загружает локальный файл на FTP сервер.

Список параметров

ftp_stream - Идентификатор соединения с FTP сервером
remote_file - Путь к файлу на FTP сервере
local_file - Путь к локальному файлу
mode - Задает режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY
startpos - Задает позицию в файле, с которой начинается загрузка

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример. Пример использования ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// загрузка файла
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "$file загружен на сервер\n";
} else {
echo "Не удалось загрузить $file на сервер\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

ftp_alloc()

Резервирует место на диске для закачиваемого файла (PHP 5)

Описание:

bool ftp_alloc ( resource ftp_stream, int filesize [, string &result] )

Посылает команду ALLO FTP серверу для резервирования места под отгружаемый файл.

Замечание: Многие FTP серверы не поддерживают эту команду. Такие серверы возвращают код неудачи (FALSE), что означает отсутствие поддержки этой команды, или код успешного выполнения (TRUE), означающий, что в резервировании нет необходимости и клиенту следует продолжать, будто операция была выполнена успешно. По этой причине эту функцию следует использовать с серверами, которые требуют обязательного резервирования.

Список параметров

ftp_stream - Идентификатор соединения с FTP сервером
filezise - Количество байтов для резервирования.
result - Текстовое представление ответа сервера будет возвращено по ссылке в аргумент result, если он указан.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример. Пример использования ftp_alloc()

<?php

$file = "/home/user/myfile";

/* соединение с сервером */
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
echo "Место на сервере успешно зарезервировано. Отправляю $file.\n";
ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
echo "Не удалось зарезервировать место на сервере. Ответ сервера: $result\n";
}

ftp_close($conn_id);

?>