За счет PHP мы можем подключиться к удаленному серверу и работать с файлами и папками его сайтов. Это открывает множество возможностей. Рассмотрим основные методы, которые позволят оперировать с удаленным сервером напрямую из PHP.
В прошлой части я подготовил код, который позволяет подключиться к фтп другого сервера. Будем использовать его:
<?php header('Content-Type: text/html; charset=utf-8');
$ftp_serv = "ftp.demo.ru";
$ftp_user = "nameuser";
$ftp_pass = "mypassword";
//Установить соединение или выйти
$conn_id = @ftp_connect($ftp_serv) or die("Не удалось установить соединение с $ftp_serv");
//Вход по FTP
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
ftp_pasv($conn_id, true); //включение пассивного режима
echo "Успешно соединились с $ftp_serv под пользователем $ftp_user<br>";
}
else {
echo "Не удалось cjtlbybnmcz под пользователем $ftp_user<br>";
}
//Закрываем соединение
ftp_close($conn_id);
?>
В месте кода, где успешно установлено соединение с сервером вставляйте следующие команды:
Создание директории
if (ftp_mkdir($conn_id, '/photo')) { echo "Создана директория<br>"; }
else { echo "Не удалось создать директорию <br>"; }
В корне ftp создаст эту папку. Можно создать только 1 директорию за раз. Создать /photo/12 не получится, если папка photo не существует, а если существует - то создаст внутри нее 12. Также выдаст ошибку если photo уже существует и мы пытаемся создать ее заново.
Чтобы загрузить файл на сервер в эту созданную директорию, напишите код:
if (ftp_put($conn_id, '/photo/stat.html', $_SERVER['DOCUMENT_ROOT'].'/block.html', FTP_ASCII)) { echo "Файл успешно загружен на сервер<br>"; }
else { echo "Не удалось загрузить файл на сервер<br>"; }
Синтаксис: ftp_put($conn_id, $fileTo, $fileFrom, $mode);
Здесь такие параметры:
- $conn_id -идентификатор FTP
- $fileTo - в какую директорию и с каким именем (+ расширением) сохранить файл на удаленный сервер
- $fileFrom - из какой директории текущего сервера (где запущен этот скрипт) предоставить на загрузку файл
- $mode - метод передачи. Обычно, для текстовых - FTP_ASCII и картинок - FTP_BINARY
Удаление директории
if (ftp_rmdir($conn_id, '/photo/summer')) { echo "Директория удалена<br>";} else { echo "Не удалось удалить директорию<br>"; }
Удаление файла на сервере
if (ftp_delete($conn_id, '/photo/12.html')) { echo "Файл удален<br>"; } else { echo "Не удалось удалить файл<br>"; }
Получение списка файлов директории /photo/
$now_dir = ftp_nlist($conn_id, '/photo/');
for($as_logs = 0; $as_logs <= count($now_dir); $as_logs++) {
echo $now_dir[$as_logs].'<br>';
}
Для большинства операций достаточны функции (полный список вдвое больше):
ftp_mkdir - создаёт новую директорию
ftp_put - загружает файл в удаленный сервер
ftp_rmdir - удаляет выбранную директорию
ftp_delete - удаляет файл на удаленном сервере
ftp_cdup - позволяет перейти в родительскую директорию
ftp_chdir - меняет текущий путь на удаленном сервере
ftp_chmod - устанавливает права доступа к файлу
ftp_get - загружает файл с удаленного сервера
ftp_nlist - показывает список файлов в выбранной директории
ftp_rename - переименовывает файл
ftp_size - показывает размер файла
Думаю, разобравшись с этим кодом, вам не достанет сложности изучить новые функции по работе с фтп. Эти примеры я лично создал и каждый проверил на своих серверах - они рабочие. Также для удобства работы с FTP я сделал класс - ведь ООП, это всегда хорошо! Пользуйтесь на здоровье!
Добавить комментарий