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() принимает один параметр:
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.