ftp_get()
Что такое ftp_get()?
Функция ftp_get() — это встроенная функция PHP, которая загружает файл с FTP-сервера и сохраняет его в локальный файл. Функция принимает пять параметров (три обязательных, два необязательных):
- ftp_stream: Идентификатор соединения, возвращаемый функцией ftp_connect().
- local_file: Имя локального файла, в который следует сохранить полученные данные.
- remote_file: Имя удалённого файла, который необходимо получить с FTP-сервера.
- mode: Режим передачи. Используйте
FTP_BINARYдля двоичных файлов илиFTP_ASCIIдля текстовых файлов. - resumepos: Начальная позиция передачи (по умолчанию 0).
Функция возвращает логическое значение. Если функция успешно получает файл, она возвращает true. В противном случае возвращается false.
Синтаксис ftp_get()
Синтаксис функции ftp_get() выглядит следующим образом:
Синтаксис ftp_get() в PHP
bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] )Примечание: В PHP 8.1+ тип resource для FTP-соединений устарел в пользу объектов Ftp\Connection. Устаревший синтаксис resource сохранён здесь для обратной совместимости.
Функция ftp_get() принимает пять параметров: ftp_stream, local_file, remote_file, mode и resumepos. Параметр ftp_stream — это идентификатор соединения, возвращаемый функцией ftp_connect(). Параметр local_file — это имя локального файла, в который следует сохранить полученные данные. Параметр remote_file — это имя удалённого файла, который необходимо получить с FTP-сервера. Параметр mode — это необязательный параметр, указывающий режим передачи, а параметр resumepos — это необязательный параметр, указывающий начальную позицию передачи. Для большинства файлов (изображений, архивов, исполняемых файлов) рекомендуется FTP_BINARY, тогда как FTP_ASCII требуется только для обычных текстовых файлов и выполняет автоматическое преобразование символов конца строки.
Применение ftp_get()
Чтобы использовать функцию ftp_get(), сначала необходимо установить соединение с FTP-сервером с помощью функции ftp_connect(). Вот пример:
Применение ftp_get() в PHP
<?php
// Set up an FTP connection
$conn = @ftp_connect('ftp.example.com');
if (!$conn) {
die("Could not connect to FTP server.");
}
// Login with your FTP credentials
if (!ftp_login($conn, 'username', 'password')) {
die("Login failed.");
}
// Retrieve a remote file and save it to a local directory
if (ftp_get($conn, '/local/directory/local_file.txt', 'remote_file.txt', FTP_BINARY)) {
echo "File retrieved successfully.\n";
} else {
echo "Failed to retrieve the file.\n";
}
// Close the FTP connection
ftp_close($conn);В этом примере мы устанавливаем соединение с FTP-сервером с помощью функции ftp_connect() и проверяем его успешность. Затем мы входим в систему, используя учётные данные FTP, с помощью функции ftp_login(), и проверяем наличие ошибок входа. Наконец, мы получаем удалённый файл и сохраняем его в локальную директорию с помощью функции ftp_get() в режиме FTP_BINARY, а затем закрываем FTP-соединение.
Обработка ошибок в ftp_get()
При использовании функции ftp_get() важно правильно обрабатывать ошибки. Если функция возвращает false, это означает, что файл не удалось получить по какой-либо причине. Вот пример обработки ошибок:
Обработка ошибок в ftp_get()
<?php
if (ftp_get($conn, '/local/directory/local_file.txt', 'remote_file.txt', FTP_ASCII) === false) {
echo "Failed to retrieve the file.\n";
} else {
echo "File retrieved successfully.\n";
}В этом примере мы проверяем возвращаемое значение функции ftp_get(). Если оно равно false, выводим сообщение об ошибке; в противном случае выводим сообщение об успехе.
Заключение
Подводя итог, функция ftp_get() — это полезная встроенная функция PHP, которая позволяет загружать файл с FTP-сервера и сохранять его в локальный файл. Следуя рекомендациям и лучшим практикам, изложенным в этой статье, вы сможете уверенно использовать функцию ftp_get() в своих PHP-проектах.
Practice
Что делает функция FTP_GET в PHP?