Warning: array_merge(): Argument #2 is not an array in /hsphere/local/home/magistr/codeismy.name/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

PHP работа с FTP

Дата: Сентябрь 3, 2009

(0) комментариев

Сегодня хочу немного рассказать о том как работать с фтп на уровне php. Хоть задача и не слишком распространённая, но бывает очень важна например для масового переноса файлов с одного хостинга на другой. Вобщем где применить данную технологию решать вам.
Немного теории:
Протокол FTP (File Transfer Protocol — протокол передачи файлов) — один из старейших протоколов Интернета, предназначенный для передачи файлов между двумя хостами.

Как правило, при работе с FTP выполняются следующие стандартные действия:

* соединение с удаленным FTP-сервером
* регистрация на FTP-сервере
* загрузка файлов с сервера или на сервер
* закрытие соединения

Для работы с FTP в PHP есть следующие функции:

  • Ftp_alloc — отводит место для файлов, которые будут загружены
  • Ftp_cdup — Переходит в родительскую директорию
  • Ftp_chdir — Изменяет текущую директорию на сервере FTP
  • Ftp_chmod — установить разрешения на файлы через FTP
  • Ftp_close — Закрывает соединение с FTP
  • Ftp_connect — соединения FTP
  • Ftp_delete — Удаляет файл на сервере FTP
  • Ftp_exec — выполнение команд на сервере FTP
  • Ftp_fget — Загружает файл с FTP сервера и сохраняет его в предварительно открытом файле
  • Ftp_fput — Загружает предварительно открытый файл на FTP сервер
  • Ftp_get_option — Получает различным поведением время выполнения текущего потока FTP
  • Ftp_get — загрузка файла с сервера FTP
  • Ftp_login — в связи с FTP
  • Ftp_mdtm — Возвращает время последней модификации данного файла
  • Ftp_mkdir — Создает директорию
  • Ftp_nb_continue — Продолжает отправку или получение файлов (без блокировки)
  • Ftp_nb_fget — Скачивает файл с FTP сервера и сохраняет его в предварительно открытом файле (без блокировки)
  • Ftp_nb_put — для хранения файла на сервере FTP (без блокировки)
  • Ftp_nlist — Возвращает список файлов в заданной директории
  • Ftp_pasv — Включает в пассивном режиме или выключить
  • Ftp_put — загрузка файлов на сервер FTP
  • Ftp_pwd — Возвращает имя текущей директории
  • Ftp_quit — Псевдоним ftp_close
  • Ftp_raw — Отправляет произвольную команду FTP серверу
  • Ftp_rawlist — Возвращает подробный список файлов в заданной директории
  • Ftp_rename — переименование файла или каталога на сервере FTP
  • Ftp_rmdir — Удаляет директорию
  • Ftp_set_option — Задать разное время выполнения FTP ссылок
  • Ftp_site — Отправляет команду SITE на сервер
  • Ftp_size — Возвращает размер указанного файла
  • Ftp_ssl_connect — открывает Secure SSL FTP-связи
  • Ftp_systype — Возвращает тип операционной системы на удаленном сервере FTP

А теперь переходим от теории к практике.
Открытие стэка(соединение с фтп):

1
$open=ftp_connect("имя хоста","порт"

Далее для работы необходимо пройти аутентификацию на сервере

1
ftp_login($open, "your_username", "your_password");

Теперь когда мы авторизовалисьмы можем выполнять различные действия, я приведу небольшой список того что можно сделать.
Получение списка файлов текущей дериктори

1
2
3
$site = ftp_nlist($open,"");
$d = 5;
for ($i = 0; $i < $d; $i++) echo $site[$i];

Изменение дериктории

1
2
3
4
5
// меняем дерикторию
if (ftp_chdir($conn_id, "somedir")) {
    echo "Текущая дериктория: " . ftp_pwd($conn_id) . "\n";
} else {
    echo

Скачать файл

1
2
3
4
5
6
$local_file = 'local.zip';
$server_file = 'server.zip';
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Скачалось $local_file\n";
} else {
    echo "Не ск

Удалить файл

1
ftp_delete($open,"test.txt");

Переименовать

1
ftp_rename($open,"test.txt","ok_test.txt");

Полчучить размер файла

1
echo ftp_size($open, "test.txt");

Загрузить файл на сервер

1
2
3
4
5
6
$file = 'somefile.txt';
$remote_file = 'readme.txt';
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "Загурзили файл $file\n";
} else {
 echo "Не загр

Создать папку

1
ftp_mkdir($open,"test");

Удалить папку

1
ftp_rmdir($open,"test");
a




    Нет комментариев на "PHP работа с FTP"

    Нет комментариев.


    Вы можете продолжить обсуждение этой статьи на форуме


    Имя : 
    Почта : 
    Сайт : 
    Комментарий : 

    Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

    Создание сайта - Echo-group Раскрутка сайтов