Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Интернет технологии -> PHP -> Работа с FTP средствами PHP


Работа с FTP средствами PHP

Протокол 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);
  ?>

Переход в родительский каталог
  Изменение текущего рабочего каталога на родительский производится с помощью   функции ftp_cdup:

Синтаксис:

bool ftp_cdup(int ftp_connect);

Пример:

<?
  $host = "ftp.server.ru";
  $port = 21;
  $user = "anonymous";
  $passwrod = "password";
  $connect = ftp_connect($host, $port, 150);
  if(!$connect)
  {
  exit();
  }
  $result = ftp_login($connect, $user, $password);
  if($result)
  {
  // сохраняем имя текущего рабочего каталога
  $current_dir = ftp_pwd($connect);
  // переходим в родительский каталог
  ftp_cdup($connect);
  // сохраняем имя нового каталога
  $new_dir = ftp_pwd($connect);
  }
  else
  {
  ftp_quit($connect);
  exit();
  }
  // Закрываем соединение
  ftp_quit($connect);
  ?>

Изменение текущего рабочего каталога
  Изменение текущего рабочего каталога на указанный осуществляется при помощи   функции ftp_chdir:

<?
  $new_dir = "web";
  ftp_chdir($connect, $new_dir);
  ?>

Как видно из этого листинга, функция ftp_chdir имеет два параметра: дескриптор   соединения $connect и имя нового каталога $new_dir.

Удаление файлов
  Удалить файл с FTP-сервера можно с помощью функции ftp_delete:

Синтаксис:

bool ftp_delete(int ftp_connect, string remote_file);

Здесь ftp_connect - дескриптор соединения, а remote_file - имя удаляемого файла.

Создание каталога
  Новый каталог можно создать, используя функцию ftp_mkdir:

Синтаксис:

string ftp_mkdir(int ftp_connect, string directory);

Эта функция возвращает имя созданного каталога или false в случае неудачи:

<?
  $dir = "web";
  $created_dir = ftp_mkdir($connect, $dir);
  ?>

Перечисление файлов в каталоге
  Узнать, какие файлы находятся в текущем каталоге, можно применив функцию ftp_nlist:

Синтаксис:

array ftp_nlist(int ftp_connect, string directory);

Пример:


  <?
  $file_list = ftp_nlist($connect, ".");
  if(is_array($file_list))
  {
  foreach($file_list as $file)
  {
  echo("$file <br>");
  }
  }
  ?>

Переименование файлов
  Переименовать файлы на FTP-сервере осуществляется с помощью функции ftp_rename:

Синтаксис:

bool ftp_rename(int ftp_connect, string from, string to);

Удаление каталогов
  Для удаления каталогов применяется функция ftp_rmdir:

Синтаксис:

bool ftp_rmdir(int ftp_connect, string directory);

Определение размера файлов
  Для определения размера файлов существует функция ftp_size:

Синтаксис:

int ftp_size(int ftp_connect, string filepath);

В случае неудачи функция возвращает -1. К примеру:

<?
  $file = "/web/user/file.txt";
  $file_size = ftp_size($connect, $file);
  if ($file_size == -1)
  {
  echo("Размер файла не определен");
  }
  else
  {
  echo("Файл $file имеет размер $file_size байт");
  }
  ?>

Посылка команды на сервер
  Послать на сервер команду можно с помощью функции ftp_site:

Синтаксис:

bool ftp_site(int ftp_connect, string command);

Эта функция посылает на сервер команду SITE. Как правило, с помощью команд   SITE выполняются такие команды операционной системы, как chmod. Список команд   SITE, поддерживаемый сервером можно узнать, подключившись к нему и выполнив   команду REMOTEHELP. Ниже приведен код, позволяющий изменить права доступа к   файлу на удаленном сервере:

<?
  $command = "chmod 0766 /web/user/file.txt";
  ftp_site($connect, $command);
  ?>

Работа через брандмауэр
  При работе с FTP-сервером через брандмауэр часто бывает необходимо изменить   активный режим, при котором соединение инициируется сервером, на пассивный,   при котором соединение инициируется клиентом. Это можно сделать, применив функцию   ftp_pasv:

<?
  $pasv_flag = true;
  $pasv_result = $pasv_flag ? "enabled" : "disabled";
  ftp_pasv($connect, $pasv_flag);
  ?>

Источник: www.softtime.ru

Ссылки по теме
Разработка собственных листов рассылки
Безопасность PHP+MYSQL+Apache
Чтение почты через Web-интерфейс
Полезные скрипты на PHP
PHP и формы
Почтовые функции в РНР
Отправка электронной почты с помощью PHP
 

Компьютерная документация от А до Я - Главная

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.