10.3. Протокол FTP
Функции, описанные в этом разделе, позволяют установить соединение с FTP-серверами. FTP - это аббревиатура от File Transfer Protocol (протокол передачи файлов). Если файловые функции позволяют открывать файлы и работать с ними, задавая URL, а не путь в локальной файловой системе, то эти функции работают непосредственно с FTP-протоколом. Они обладают большей степенью управления и позволяют получать каталог находящихся на сервере файлов. FTP-функции были добавлены к арсеналу функций PHP Эндрю Скальски (Andrew Skalski).
FTP-протокол работает в одном из режимов: текстовом или двоичном. В текстовом режиме FTP транслирует окончания строк. Обычно для выбора режима PHP использует константы FTP_ASCII и FTP_IMAGE. Константы FTP_TEXT и FTP_BINARY были добавлены позднее для удобочитаемости.
Несколько новых функций позволяет осуществлять с помощью FTP-протокола незаблокированные передачи, что дает возможность вашему сценарию выполнять свой код при передаче в фоновом режиме.
boolean ftp_cdup(resource ftp)
Функция ftp_cdup изменяет рабочий каталог на каталог верхнего уровня для текущего рабочего каталога.
boolean ftp_chdir(resource ftp, string directory)
Функция ftp_chdir переносит рабочий каталог в заданный каталог.
boolean ftp_chmod(resource ftp, integer mode, string path)
Функция ftp_chmod меняет права доступа удаленного файла.
ftp_close(resource ftp)
Функция ftp_close закрывает FTP-соединение и освобождает связанную с ним память.
resource ftp_connect(string host, integer port, integer timeout)
Функция ftp_connect (листинг 10.14) открывает FTP-соединение. Аргумент port является необязательным и по умолчанию равен 21. Аргумент timeout является необязательным и по умолчанию равен 90 секундам. Это значение имеет отношение ко всем FTP-операциям соединения.
В случае успешного соединения возвращается ресурс идентификатора FTP, который и будет использоваться в остальных FTP-командах, в противном случае - значение FALSE. После подключения, для того чтобы иметь возможность передавать команды, необходимо зарегистрироваться.
Листинг 9.14. Функция ftpconnect
<?php
//подключение к серверу
if(!($ftp = ftp_connect("www.leonatkinson.com"))) {
print("Подключение невозможно!<br>n"); exit();
}
print("Подключен<br>n"),• //регистрация
if(!ftp_login($ftp, "anonymous", "corephp@"))
{
print("Регистрация невозможна!<br>n"); exit();
}
print(" Зарегистрировался^^^"),-
print("Тип системы: " . ftp_systype($ftp) . "<br>n"); print("Тайм-аут: " .
ftp_get_option($ftp, FTP_TIMEOUT_SEC) . " секунд^^^"),-//убедитесь в том, что пассивный режим отключен ftp_pasv($ftp, FALSE);
print(" Рабочий каталог: " . ftp_pwd($ftp) . "<br>n"); print("Список:<br>n");
foreach(ftp_rawlist($ftp, ".") as $line)
{
print("$line<br>n");
}
print("<br>n");
if(!ftp_chdir($ftp, "pub/leon"))
{
print("Невозможно перейти в каталог pub/leon!<br>n");
}
print("Перешли в каталог pub/leon <br>n"); print(" Файлы:^^^"),-
foreach(ftp_nlist($ftp, ".") as $filename)
{
print("$filename<br>n");
}
print("<br>n");
if(!ftp_cdup($ftp))
{
print("Невозможно перейти в каталог верхнего уровня!<br>n");
}
// закрыть соединение ftp_close($ftp);
?>
boolean ftp_delete(resource ftp, string path)
Функция ftp_delete удаляет файл, находящийся на удаленном сервере. Аргумент link может быть получен с помощью функции ftp_connect. Аргумент path является путем к удаляемому файлу на удаленном сервере. Пример использования приведен в описании функции ftp_put.
boolean ftp_exec(resource ftp, string command)
Функция ftp_exec выполняет команду на удаленном сервере. Большинство серверов не разрешают таких действий.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операции ввода-вывода на сетевом уровне. Часть Восьмая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Операции ввода-вывода на сетевом уровне. Часть Седьмая. | PHP. Операции ввода-вывода на сетевом уровне. Часть Девятая. |