Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / web / Введение в PHP.doc
Скачиваний:
77
Добавлен:
18.05.2015
Размер:
3 Mб
Скачать

Работа с ftp на уровне php

Протокол передачи файлов FTP был разработан в 70-х годах прошлого века и применяется до настоящего времени для передачи файлов и доступа к удаленным хостам. Доступ к удаленному серверу FTP возможен с помощью обычного браузера. Наберем, например в командной строке браузера ftp://ftp.mao.kiev.ua или ftp://ftp.uar.net или ftp://ftp.lviv.farlep.net и получим доступ к ftp – серверам и хранящимся на них документах.

Передать или прочитать данные с сервера легко с помощью известной программы Total Comander. Легко превратить локальный или удаленный компьютер в FTP – сервер установкой программы – сервера, например, FileZilla Server.

Далее рассмотрим доступ к файлам на FTP – сервере из приложения на PHP.

Работа с FTP начинается с установки соединения функцией

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

Здесь "имя хоста" - это имя сайта, к которому надо подключиться. В параметре "порт" указывается ftp-порт удаленного сервера (стандартно "21"), а в "timeout" - время в секундах, на которое надо открыть соединение. Пример: $open = ftp_connect("ftp.server.com", 21, 30); Функция возвращает дескриптор усановленного соединения или false.

Для регистации и входа по аккаунту на сервер используется функция

ftp_login($open, "username", "password");

/*if (!ftp_login($open, "username", "password")) exit("Не могу соединиться");*/

Параметр "username" должен содержать логин для входа, а "password" - пароль. Переменная $open является идентификатором соединения с ftp узлом, возвращаемым функцией ftp_connect(). При успешной регистрации возвращается значение true иначе false. Закрывается соединение функцией ftp_close($open);

Рассмотрим функции работы с FTP. Функция string ftp_systype($open) возвращает строку с типом ОС. Функция string ftp_pwd($open) возвращает имя текущего каталога. Функция array ftp_nlist($open, string directory) возвращает список файлов из указанного каталога. Просмотреть содержимое текущего каталога можно следующим образом:

$site = ftp_nlist($open,"");

$n = 10;

for ($i = 0; $i < $n; $i++) echo $site[$i];

Функция "ftp_nlist()" возвращает один файл из каталога, если нужно просмотреть все файлы, то ее следует использовать в цикле. Аналогичные действия выполняет функция array ftp_rawlist($open, string directory).

Функция ftp_mkdir() создаёт директорию, например ftp_mkdir($open,"test"); //Создали папку "test". Функция ftp_rmdir удалит папку:

ftp_rmdir($open,"test"); //Удалили ранее созданную нами папку папку "test".

Переименовать файл можно функцией: ftp_rename($open,"test.txt","newtest.txt"); Мы переименовали "test.txt" в "newtest.txt".

Функция echo ftp_size($open, "test.txt"); возвращает размер файла, либо значение "-1" в случае неудачи.

Если понадобится узнать дату последнего изменения файла, это осуществимо с помощью функции $mod = ftp_mdtm($open,"test.txt");

Для удаления файла воспользуйтесь функцией ftp_delete($open,"test.txt");

Рассмотрим пример

<?php //app10ftp.php

$open=ftp_connect("127.0.0.1","21","120");

echo $open,"<br>";

echo ftp_systype($open),"<br>";

if(!ftp_login($open,"123",""))

exit("Не могу соединиться");

echo ftp_pwd($open),"<br>";

print ftp_nlist($open, "") ;

$site = ftp_nlist($open,"");

$n = 10;

for ($i = 0; $i < $n; $i++) echo $site[$i],"<br>";

ftp_mkdir($open,"test"); //Создали директорию

ftp_rename($open,"test.txt","newtest.txt"); //Переименовали файл

ftp_rmdir($open,"test"); //Удалили директорию

ftp_close($open); //Закрыли поток

?>

Вывод:

Resource id #2

UNIX

/

Array-= Install from leo =-

-=backup=-

-=knigi ot leo=-

8e48db2be6e49ac83945ab41bc1a36

Adobe Dreamweaver CS4. Видеокнига (Мишенев А. И., 2009).pdf

BELARUS_MAP

Builder

ChromePortable198

chrome_installer

chrome_installer.exe