Subir ficheros al servidor mediante FTP es una tarea fundamental para todo desarrollador web que se precie. Existen muchos clientes FTP que te ayudan en esta tarea, es decir, te ayudan a gestionar los ficheros de un servidor FTP. Pero, ¿qué pasa si queremos conectarnos a un servidor FTP y gestionar sus ficheros a través de un script?
PHP te proporciona varias funciones para trabajar con servidores FTP. En este tutorial te mostraremos cómo conectarnos a servidor FTP utilizando PHP y lo que es aún mejor, te enseñaremos a gestionar los ficheros de un servidor FTP mediante PHP.
Conectarnos a un servidor FTP
Antes que nada, debemos conectarnos a un servidor FTP utilizando la función ftp_connect(). Una vez hemos creado la conexión, utilizamos la función ftp_login() para loguarnos en el servidor FTP mediante un usuario y una contraseña.
// FTP server details $ftpHost = 'ftp.example.com'; $ftpUsername = 'ftpuser'; $ftpPassword = '*****'; // open an FTP connection $connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost"); // try to login if(@ftp_login($connId, $ftpUsername, $ftpPassword)){ echo "Connected as $ftpUsername@$ftpHost"; }else{ echo "Couldn't connect as $ftpUsername"; } // close the connection ftp_close($connId);
Subir fichero a un servidor FTP
Una vez logueados en el servidor FTP. Utilizaremos la función ftp_put() para subir un fichero al servidor.
// FTP server details $ftpHost = 'ftp.example.com'; $ftpUsername = 'ftpuser'; $ftpPassword = '*****'; // open an FTP connection $connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost"); // login to FTP server $ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword); // local & server file path $localFilePath = 'index.php'; $remoteFilePath = 'public_html/index.php'; // try to upload file if(ftp_put($connId, $remoteFilePath, $localFilePath, FTP_ASCII)){ echo "File transfer successful - $localFilePath"; }else{ echo "There was an error while uploading $localFilePath"; } // close the connection ftp_close($connId);
Descargar fichero de un servidor FTP
Una vez logueados en el servidor FTP. Utilizaremos la función ftp_get() para descargar un fichero al servidor.
// FTP server details $ftpHost = 'ftp.example.com'; $ftpUsername = 'ftpuser'; $ftpPassword = '*****'; // open an FTP connection $connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost"); // login to FTP server $ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword); // local & server file path $localFilePath = 'index.php'; $remoteFilePath = 'public_html/index.php'; // try to download a file from server if(ftp_get($connId, $localFilePath, $remoteFilePath, FTP_BINARY)){ echo "File transfer successful - $localFilePath"; }else{ echo "There was an error while downloading $localFilePath"; } // close the connection ftp_close($connId);
Eliminar fichero del servidor FTP
Una vez logueados en el servidor FTP. Utilizaremos la función ftp_delete() para eliminar un fichero del servidor.
// FTP server details $ftpHost = 'ftp.example.com'; $ftpUsername = 'ftpuser'; $ftpPassword = '*****'; // open an FTP connection $connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost"); // login to FTP server $ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword); // server file path $file = 'public_html/index_old.php'; // try to delete file on server if(ftp_delete($connId, $file)){ echo "$file deleted successful"; }else{ echo "There was an error while deleting $file"; } // close the connection ftp_close($connId);
Fuente: codexworld.com