ftp_pwd()
Функция ftp_pwd() возвращает текущий каталог FTP-соединения. Подробное описание синтаксиса и примеры использования.
Функция PHP ftp_pwd() возвращает текущий рабочий каталог открытого FTP-соединения — это эквивалент команды pwd («print working directory») в FTP-клиенте. На этой странице объясняется, что возвращает функция, как правильно её вызывать в разных версиях PHP и как она вписывается в типичный сеанс работы с FTP.
Что делает ftp_pwd()
После подключения и входа на FTP-сервер сервер отслеживает «текущий каталог» для вашего сеанса. По мере перемещения с помощью ftp_chdir() или ftp_cdup() это местоположение меняется. ftp_pwd() сообщает, где вы находитесь в данный момент, возвращая абсолютный путь в виде string.
Это особенно полезно для:
- Логирования и отладки — чтобы убедиться, что вы попали в нужный каталог после входа.
- Сохранения и восстановления местоположения: запишите путь с помощью
ftp_pwd(), перейдите в другой каталог для выполнения работы, затем вернитесь с помощьюftp_chdir(). - Формирования путей для загрузки/выгрузки файлов относительно текущего расположения на сервере.
Синтаксис
ftp_pwd(FTP\Connection $ftp): string|falseФункция принимает единственный аргумент:
$ftp— дескриптор FTP-соединения, возвращённый функциейftp_connect()(илиftp_ssl_connect()).
При успешном выполнении возвращает текущий каталог в виде string, при ошибке — false.
Примечание о версиях: В PHP 8.1 и выше соединение представлено объектом
FTP\Connection. В PHP 7.x и более ранних версиях FTP-функции использовалиresource— код вызова идентичен, изменился лишь тип$ftp. Код, написанный для старых версий, продолжает работать без изменений.
Базовое использование
Перед вызовом ftp_pwd() необходимо установить соединение и выполнить вход:
<?php
// Open an FTP connection
$ftp = ftp_connect('ftp.example.com');
// Log in with your credentials
ftp_login($ftp, 'username', 'password');
// Ask the server where we are
$current = ftp_pwd($ftp);
echo "Current directory: $current\n"; // e.g. "Current directory: /"
// Always close the connection when done
ftp_close($ftp);Сразу после входа большинство серверов помещают вас в домашний каталог учётной записи, поэтому первый вызов ftp_pwd() обычно возвращает / или что-то вроде /home/username.
Отслеживание местоположения при смене каталогов
Значение, возвращаемое ftp_pwd(), отражает каждый шаг навигации. В сочетании с ftp_chdir() это позволяет убедиться, что переход выполнен успешно:
<?php
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'username', 'password');
echo ftp_pwd($ftp) . "\n"; // /
ftp_chdir($ftp, 'public_html');
echo ftp_pwd($ftp) . "\n"; // /public_html
ftp_chdir($ftp, 'images');
echo ftp_pwd($ftp) . "\n"; // /public_html/images
ftp_close($ftp);Сохранение и восстановление рабочего каталога
Распространённый паттерн — запомнить текущее местоположение, выполнить работу в другом месте, а затем вернуться:
<?php
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'username', 'password');
// Remember the starting point
$home = ftp_pwd($ftp);
// Move into a subfolder and upload a file
ftp_chdir($ftp, 'uploads');
ftp_put($ftp, 'report.pdf', '/tmp/report.pdf', FTP_BINARY);
// Go back to where we started
ftp_chdir($ftp, $home);
ftp_close($ftp);Обработка ошибок
ftp_pwd() возвращает false, если соединение недействительно или сервер отклонил запрос. Поскольку пустая string также является ложным значением, используйте строгую проверку === false вместо !$current:
<?php
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'username', 'password');
$current = ftp_pwd($ftp);
if ($current === false) {
echo "Failed to get the current directory.\n";
} else {
echo "You are in: $current\n";
}
ftp_close($ftp);Обратите внимание, что ftp_connect() сама возвращает false, если не может достичь хоста, поэтому в рабочем коде следует проверять результаты подключения и входа перед вызовом ftp_pwd().
Связанные функции
ftp_connect()— открыть FTP-соединение.ftp_login()— аутентификация на сервере.ftp_chdir()— сменить текущий каталог.ftp_cdup()— перейти в родительский каталог.ftp_close()— закрыть соединение.- Обзор PHP FTP — все FTP-функции на одной странице.