Лекции     Книги     Рефераты    
Диплом, курсовая на заказ

FTP сессия средствами PHP.

news date мая.12.2008    categories Web-программирование > PHP    comments (0)

Предлагаю написать сценарий, автоматизирующий залив файлов на FTP сервер. Исходные данные: имя сервера, логин и пароль FTP-пользователя, путь к директории на FTP сервере, а так же список файлов, которые необходимо залить на сервер (пусть это будет мини-сайт, состоящий из 3-х файлов: index.html, image.gif, style.css).

Итак, первое, что необходимо сделать – соединиться с FTP сервером (ну, например, используем многострадальный narod.ru). Регистрируем аккаунт, и получаем данные для FTP. Например, я зарегистрировал такой:

Хост: ftp.narod.ru
Логин: ftp-php
Пароль: ftpphp

Начинаем FTP-сессию:

<?php
// переменные для логина
$ftphost = ‘ftp.narod.ru’;

$user = ‘ftp-php’;
$password = ‘ftpphp’;

// открываем FTP соединение, в случае неудачи останавливаем работу сценария
$fp = ftp_connect($ftphost) or die (‘Не могу соедениться c FTP сервером’);

// логинимся
$connect = ftp_login($fp, $user, $password);

// проверяем успешность входа
if($connect) echo “OK – мы вошли как $user <br>”;
else
echo ‘Ошибка входа на FTP сервер’;

// закрываем FTP соединение
ftp_close($fp);
?>

Если все ОК – мы вошли на FTP сервер. Просто зашли… и закрыли соединение. :)
Все, что будем делать далее – будем писать до ftp_close()…

Во-первых, давайте создадим на нашем FTP сервере директорию /images и переместимся внутрь созданной нами папки… в нее мы будем помещать графические файлы…

ftp_mkdir ($fp, ‘images’);
ftp_chdir ($fp, ‘images’);

… Мы создали на FTP сервере папку ./images и вошли в созданную папку. Давайте зальем в нее какой-либо файл. (пусть это будет файл image.gif, который лежит в директории исполняемого скрипта – чтоб долго не искать :) )

Для начала включим пассивный режим (рекомендую это делать… В пассивном передача данных инициируется клиентом, а не сервером.)

ftp_pasv ( $fp , TRUE);

Затем заливаем файл image.gif (используем бинарный режим)

$image = fopen(‘image.gif’, ‘r’); // открываем нужный файл для чтения
$loadfile = ftp_fput ( $fp, ‘image.gif’ , $image , FTP_BINARY ); // передаем его на FTP
fclose($image); // закрываем файл

// проверяем успешность заливки
if($loadfile)
echo ‘Файл Успешно загружен <br>’;
else
echo ‘Ошибка загрузки файла <br>’;

Далее – вернемся в корень и зальем еще 2 файла (index.html и style.css)

ftp_cdup($fp); // Переходим в родительскую директорию
$indexfile = fopen(‘index.html’, ‘r’); // открываем нужный файл для чтения
$loadfile = ftp_fput ( $fp, ‘index.html’ , $indexfile , FTP_ASCII ); // передаем его на FTP
fclose($indexfile); // закрываем файл

$stylefile = fopen(‘style.css’, ‘r’); // открываем нужный файл для чтения
$loadfile = ftp_fput ( $fp, ‘style.css’ , $stylefile , FTP_ASCII ); // передаем его на FTP
fclose($stylefile); // закрываем файл

Проверку успешности загрузки добавьте сами…

Обратите внимание – эти 2 файла мы загружали в режиме ASCII. а не в бинарном режиме…

Итак, мы научились:

  • соединиться с FTP сервером и авторизоваться на нем.
  • создать директорию на FTP сервере
  • залить файлы в нужные директории на FTP сервере
  • закрыть соединение

В нашем сценарии были использованы функции:

  • ftp_connect – Устанавливает соединение с FTP сервером
  • ftp_login – Выполняет вход на FTP сервер
  • ftp_mkdir — Создаёт директорию на FTP сервере
  • ftp_chdir – Изменяет текущую директорию на FTP сервере
  • ftp_pasv – Включает или выключает пассивный режим
  • ftp_fput – Загружает предварительно открытый файл на FTP сервер
  • ftp_cdup – Переходит в родительскую директорию
  • ftp_close – Закрывает соединение с FTP сервером

В качестве “домашнего задания” предлагаю объеденить этот урок с предыдущим
(“Пишем простейший ПАРСЕР контента на PHP“)
и написать сценарий, который будет парсить контент с удаленного сайта, сохранять его в локальный файл, и затем заливать на удаленный FTP сервер… (ничего не напоминает? :) )

Как всегда жду ваших отзывов и предложений…

Обсуждения

Нет комментариев к “FTP сессия средствами PHP.”

Добавить комментарий

Вы должны войти



© 2009 - 2010 | Webteach.ru | Образовательный портал