W3docs

ftp_quit()

Функция ftp_quit() закрывает FTP-соединение в PHP. Узнайте о синтаксисе, использовании и обработке ошибок на примерах.

Понимание PHP-функции ftp_quit()

Функция ftp_quit() закрывает открытое FTP-соединение и освобождает связанные с ним ресурсы. Она является аналогом ftp_connect(): после завершения передачи файлов вызов ftp_quit() отправляет FTP-команду QUIT на сервер и корректно завершает сеанс.

В этой статье объясняется, что делает функция, почему важно закрывать соединение и как безопасно использовать её в устаревших кодовых базах PHP — а также рассматривается современная замена, которую следует использовать в первую очередь.

Устарела и удалена: ftp_quit() является псевдонимом ftp_close(). Псевдоним был устаревшим в PHP 7.2 и удалён в PHP 8.0. В любом проекте, работающем на PHP 8 или новее, используйте ftp_close() — она ведёт себя идентично. Это руководство документирует ftp_quit() для поддержки устаревшего кода.

Что такое ftp_quit()?

Функция ftp_quit() принимает один параметр:

  1. ftp_stream — идентификатор соединения, возвращаемый функцией ftp_connect() (или ftp_ssl_connect()).

При успехе возвращает true, при ошибке — false.

Зачем закрывать FTP-соединение?

PHP автоматически закрывает FTP-соединение по завершении скрипта, так зачем явно вызывать ftp_quit()?

  • Раннее освобождение ресурсов. В долго работающем скрипте, открывающем несколько соединений (например, для синхронизации с несколькими серверами), закрытие каждого соединения сразу после завершения работы предотвращает удержание простаивающих сокетов.
  • Отправка корректного QUIT. Корректное завершение сообщает серверу о выходе, что позволяет ему немедленно освободить собственные ресурсы сеанса, не дожидаясь тайм-аута.
  • Соблюдение лимитов соединений. Многие FTP-серверы ограничивают количество одновременных соединений на пользователя. Своевременное освобождение соединений позволяет избежать ошибок «слишком много соединений».

Синтаксис ftp_quit()

Синтаксис функции ftp_quit() выглядит следующим образом:

Синтаксис ftp_quit()

bool ftp_quit ( resource $ftp_stream )

Функция ftp_quit() принимает один обязательный параметр — ftp_stream. Параметр ftp_stream — это идентификатор соединения, возвращаемый функцией ftp_connect().

Использование ftp_quit()

Чтобы использовать функцию ftp_quit(), сначала установите соединение с помощью ftp_connect() и выполните аутентификацию с помощью ftp_login(). После завершения передачи файлов закройте сеанс. Вот типичный сценарий для устаревших PHP-окружений:

Использование ftp_quit()

<?php

// Set up an FTP connection
$conn = ftp_connect('ftp.example.com');

// Login with your FTP credentials
ftp_login($conn, 'username', 'password');

// ... transfer files here (ftp_put, ftp_get, etc.) ...

// Close the FTP connection (use ftp_close() in PHP 8+)
ftp_quit($conn);

В этом примере мы подключаемся к FTP-серверу с помощью ftp_connect(), проходим аутентификацию через ftp_login(), выполняем передачу файлов и наконец закрываем соединение с помощью ftp_quit().

После выполнения ftp_quit() дескриптор $conn становится недействительным — любой последующий вызов FTP с его использованием (например, ftp_get() или ftp_pwd()) завершится ошибкой. Если вам снова нужно обратиться к серверу, откройте новое соединение.

Обработка ошибок в ftp_quit()

При использовании функции ftp_quit() важно правильно обрабатывать ошибки. Если функция возвращает false, это означает, что операция завершилась неудачно. Ошибки случаются редко и обычно указывают на то, что соединение уже было закрыто. Вот пример обработки ошибок:

Обработка ошибок в ftp_quit()

<?php

$connection_closed = ftp_quit($conn);

if (!$connection_closed) {
    echo "Failed to close FTP connection.\n";
}

Проверяя возвращаемое значение, вы можете убедиться, что соединение закрыто должным образом. На практике результат false встречается редко и обычно означает, что соединение уже было разорвано.

ftp_quit() и ftp_close()

Обе функции идентичны по поведению — ftp_quit() является лишь старым псевдонимом. Единственное различие — в доступности:

ФункцияДоступна вСтатус
ftp_quit()PHP 4 – 7.xУстарела в 7.2, удалена в 8.0
ftp_close()PHP 4 и вышеРекомендуется

При написании нового кода всегда используйте ftp_close(). Оставьте ftp_quit() только для поддержки кода, который должен работать на PHP 7.1 и ниже.

Заключение

Функция ftp_quit() закрывает FTP-соединение в устаревших PHP-окружениях, освобождая ресурсы и корректно завершая сеанс. При правильном использовании и обработке ошибок она является надёжным элементом FTP-рабочих процессов в старых версиях PHP. Для PHP 8 и выше замените её на ftp_close(). Чтобы изучить полный набор FTP-инструментов, ознакомьтесь с обзором FTP-функций PHP.

Практика

Практика
Какова основная функция метода FTP_QUIT в PHP?
Какова основная функция метода FTP_QUIT в PHP?
Was this page helpful?