Если вы начинаете выходить на высокий уровень программирования, то рано или поздно столкнетесь с необходимостью подключения через ftp к другим серверам, с целью передачи файлов, создания папок или их удаления. Если честно, я даже не думал, что такое возможно стандартными методами PHP, но умные разработчики все предусмотрели.
Итак, обычно, мы используем программы типа FileZilla или WinSCP, чтобы подключаться к нашим сайтам и работать с ними напрямую. Для того, чтобы программно из php подключаться к серверу используется специальные ftp функции.
Для подключения понадобятся ftp_connect() и ftp_login()
Синтаксис: ftp_connect (string $host [, int $port = 21 [, int $timeout = 90 ]]) - устанавливает соединение с сервером. Обязателен только $host вашего сервера (у кого-то это ip, у кого-то запись типа: serverXX.hosting.reg.ru). $port - по умолчанию 21 и $timeout - время подключения к серверу, на все последующие операции.
PS Для подключение по ssl используйте ftp_ssl_connect() - входные данные такие же. Ну а для подключения по SFTP уже библиотеку ssh2_sftp() - и это уже совсем другая история.
Синтаксис: ftp_login(resource ftp_stream, string username, string password) - подключает нас к FTP серверу. ftp_stream идентификатор соединения, который мы получаем в ftp_connect(), последние два параметра - логин юзера и его пароль.
Соединимся по FTP к серверу через 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);
?>
В этом коде мы сначала указываем данные входа, затем подключаемся к серверу и сохраняем в $conn_id идентификатор соединения (если оно прошло успешно). И в функции ftp_login() используем полученный идентификатор, а также вводим логин и пароль для соединения. Если оно пройдет успешно, то можем работать с сервером из php. Корневой папкой будет считаться та, до куда сделан FTP доступ.
Обязательно читайте в следующей части про операции создания файлов и папок напрямую из PHP.
Добавить комментарий