Requisitos del sistema
El uso de estas funciones requiere que PHP tenga activada la opción FTP (enabled), que en nuestro caso está activada en la configuración por defecto, tal como puedes ver a través de tu info.php, que tendrá un apartado idéntico al que observamos en la siguiente tabla:
FTP support enabled
Esto en cuanto a PHP. Pero además de esta configuración será imprescindible disponer de un servidor FTP accesible y activo. En este tipo de transferencias intervienen dos servidores: el servidor HTTP (nuestro Apache) y el servidor FTP, cuyo procedimiento de instalación y configuración hemos descrito en el apartado Servidor de FTP. Antes de poder utilizar las funciones que aquí describimos deberás tener instalado y activo el servidor FTP que allí se describe.
Nos conviene recordar que en la configuración allí descrita el servidor se llama: localhost; y que hemos creado diferentes usuarios (con privilegios distintos) entre ellos admin.
Dos tipos de transferencias
En la página anterior hemos hablado de la manera de transferir información entre el ordenador de un usuario y un servidor web.
Aquí trataremos algo –similar a primera vista– un poco distinto. Es el caso las transferencias –en los dos sentidos– entre servidores (un servidor HTTP y un servidor FTP).
En la configuración descrita en la instalación del servidor FTP hemos establecido que ambos servidores tengan por root el mismo directorio, pero no es la única opción posible.
Es totalmente factible que uno de los servidores esté alojado en un hosting de Londres y el otro en Sydney, por poner un ejemplo de lugares distantes.
Imaginemos que todo esto es cierto.
Transferencias FTP
Los dos primeros pasos para poder utilizar las funciones FTP han de ser: abrir la conexión y pasar el login. El último sería cerrar la conexión.
Abrir la conexión
$x=ftp_connect (host,pt)
Esta función –en la que host es una cadena con el nombre del servidor FTP (no te olvides de ponerlo entre comillas) y pt es el número del puerto a través del cual se efectúa la conexión FTP– abre una conexión con el servidor FTP.
Si se omite pt se asigna por defecto el valor 21 que es el puerto que se usa habitualmente para acceder a este tipo de servidores.
La variable $x recogerá el identificador de conexión que será utilizado por las demás funciones.
«Loguearse»
Utilizaremos este término del argot informático –¿horrible, verdad?– para referirnos al hecho de que el usuario se acredite como autorizado en el servidor FTP.
ftp_login($x,user,pass)
Una vez abierta la conexión es preciso comenzar la sesión utilizando la función ftp_login con los siguientes parámetros:
• $x, que es la variable en la que se recogía el resultado de ftp_connect.
• user, que es el nombre de usuario.
• pass, que es la password del usuario.
Esta función devuelve un valor booleano que será 1 en el caso en que se inicie la sesión correctamente o NUL si no lo hace.
Cerrar la conexión
Mediante la función:
ftp_quit($x)
se cierra la conexión abierta con el identificador indicado en la variable $x.
Gestión de directorios en el servidor FTP
Una vez logueados y con la conexión activa ya podremos utilizar funciones FTP tales como:
ftp_cdup($x)
Nos situa en el directorio raíz del servidor FTP.
ftp_pwd($x)
Nos devuelve una cadena con el nombre del directorio actual.
ftp_chdir($x, nuevodir)
Cambia el acceso actual al directorio especificado por la cadena nuevodir, en caso de que exista.
ftp_mkdir($x, nomdir)
Crea un subdirectorio –en el directorio actual– cuyo nombre es el nombre indicado en la cadena nomdir.
ftp_rmdir($x, nomdir)
Borra el directorio especificado en la cadena nomdir.
Para que un directorio pueda ser borrado se requiere que esté vacío y que esté incluido dentro del directorio actual.
Información sobre los contenidos de los directorios del servidor FTP
ftp_nlist($x, nomdir)
Devuelve una array escalar con los nombres de los ficheros y subdirectorios contenidos en el directorio que se indica en nomdir.
Si se trata del directorio actual, el parámetro nomdir puede especificarse como una cadena vacia ("").
Si la información se refiere a un subdirectorio del actual bastará poner su nombre como valor del parámetro nomdir.
En cualquier otro caso nomdir contendrá la ruta completa.
ftp_rawlist($x, nomdir)
Igual que la función anterior, ftp_rawlist también devuelve un array escalar, pero en este caso con información ampliada.
Este array detalla, además del nombre del fichero, el tamaño, el tipo, la fecha de la última modificación y los permisos de lectura y/o escritura.
Transferencia de ficheros
Las transferencias de ficheros pueden realizarse en ambos sentidos.
Desde el servidor FTP hasta el servidor HTTP
Mediante la función:
ftp_get($x,nloc,nrem,modo)
se transfiere un fichero desde un servidor FTP hasta un directorio del servidor HTTP en el que se está ejecutando PHP.
La cadena nloc contiene el nombre con el que el fichero será copiado en el directorio actual del servidor web y la cadena nrem contiene el nombre (incluyendo el path) del fichero que debe ser trasferido.
El parámetro modo puede contener uno de estos valores: FTP_ASCII o FTP_BINARY
Desde el servidor HTTP hasta el servidor FTP
Para realizar transferencias en sentido contrario al anterior se utiliza la siguiente sintaxis:
ftp_put($x,nrem,nloc,modo)
Se comporta de forma idéntica a la función anterior. La cadena nrem sigue siendo el nombre y el path del servidor FTP (donde vamos a copiar el fichero) y nloc contiene el nombre del fichero en el servidor web (origen de la transferencia).
Modificación de ficheros en el servidor FTP
ftp_rename($x,nant,nnuevo)
Cambia el nombre del fichero nant por el indicado en la cadena nnuevo.
ftp_delete($x,fichero)
Elimina -en el servidor FTP- el fichero indicado en la cadena fichero.
Información sobre ficheros del en el servidor FTP
ftp_size($x,nomfile)
Devuelve el tamaño (en bytes) del fichero que se indica en la cadena nomfile.
ftp_mdtm($x,nomfile)
Esta función devuelve la fecha de la última modificación del fichero indicado en la cadena nomfile. Esta fecha se indica en tiempo Unix.
El uso de estas funciones requiere que PHP tenga activada la opción FTP (enabled), que en nuestro caso está activada en la configuración por defecto, tal como puedes ver a través de tu info.php, que tendrá un apartado idéntico al que observamos en la siguiente tabla:
FTP support enabled
Esto en cuanto a PHP. Pero además de esta configuración será imprescindible disponer de un servidor FTP accesible y activo. En este tipo de transferencias intervienen dos servidores: el servidor HTTP (nuestro Apache) y el servidor FTP, cuyo procedimiento de instalación y configuración hemos descrito en el apartado Servidor de FTP. Antes de poder utilizar las funciones que aquí describimos deberás tener instalado y activo el servidor FTP que allí se describe.
Nos conviene recordar que en la configuración allí descrita el servidor se llama: localhost; y que hemos creado diferentes usuarios (con privilegios distintos) entre ellos admin.
Dos tipos de transferencias
En la página anterior hemos hablado de la manera de transferir información entre el ordenador de un usuario y un servidor web.
Aquí trataremos algo –similar a primera vista– un poco distinto. Es el caso las transferencias –en los dos sentidos– entre servidores (un servidor HTTP y un servidor FTP).
En la configuración descrita en la instalación del servidor FTP hemos establecido que ambos servidores tengan por root el mismo directorio, pero no es la única opción posible.
Es totalmente factible que uno de los servidores esté alojado en un hosting de Londres y el otro en Sydney, por poner un ejemplo de lugares distantes.
Imaginemos que todo esto es cierto.
Transferencias FTP
Los dos primeros pasos para poder utilizar las funciones FTP han de ser: abrir la conexión y pasar el login. El último sería cerrar la conexión.
Abrir la conexión
$x=ftp_connect (host,pt)
Esta función –en la que host es una cadena con el nombre del servidor FTP (no te olvides de ponerlo entre comillas) y pt es el número del puerto a través del cual se efectúa la conexión FTP– abre una conexión con el servidor FTP.
Si se omite pt se asigna por defecto el valor 21 que es el puerto que se usa habitualmente para acceder a este tipo de servidores.
La variable $x recogerá el identificador de conexión que será utilizado por las demás funciones.
«Loguearse»
Utilizaremos este término del argot informático –¿horrible, verdad?– para referirnos al hecho de que el usuario se acredite como autorizado en el servidor FTP.
ftp_login($x,user,pass)
Una vez abierta la conexión es preciso comenzar la sesión utilizando la función ftp_login con los siguientes parámetros:
• $x, que es la variable en la que se recogía el resultado de ftp_connect.
• user, que es el nombre de usuario.
• pass, que es la password del usuario.
Esta función devuelve un valor booleano que será 1 en el caso en que se inicie la sesión correctamente o NUL si no lo hace.
Cerrar la conexión
Mediante la función:
ftp_quit($x)
se cierra la conexión abierta con el identificador indicado en la variable $x.
Gestión de directorios en el servidor FTP
Una vez logueados y con la conexión activa ya podremos utilizar funciones FTP tales como:
ftp_cdup($x)
Nos situa en el directorio raíz del servidor FTP.
ftp_pwd($x)
Nos devuelve una cadena con el nombre del directorio actual.
ftp_chdir($x, nuevodir)
Cambia el acceso actual al directorio especificado por la cadena nuevodir, en caso de que exista.
ftp_mkdir($x, nomdir)
Crea un subdirectorio –en el directorio actual– cuyo nombre es el nombre indicado en la cadena nomdir.
ftp_rmdir($x, nomdir)
Borra el directorio especificado en la cadena nomdir.
Para que un directorio pueda ser borrado se requiere que esté vacío y que esté incluido dentro del directorio actual.
Información sobre los contenidos de los directorios del servidor FTP
ftp_nlist($x, nomdir)
Devuelve una array escalar con los nombres de los ficheros y subdirectorios contenidos en el directorio que se indica en nomdir.
Si se trata del directorio actual, el parámetro nomdir puede especificarse como una cadena vacia ("").
Si la información se refiere a un subdirectorio del actual bastará poner su nombre como valor del parámetro nomdir.
En cualquier otro caso nomdir contendrá la ruta completa.
ftp_rawlist($x, nomdir)
Igual que la función anterior, ftp_rawlist también devuelve un array escalar, pero en este caso con información ampliada.
Este array detalla, además del nombre del fichero, el tamaño, el tipo, la fecha de la última modificación y los permisos de lectura y/o escritura.
Transferencia de ficheros
Las transferencias de ficheros pueden realizarse en ambos sentidos.
Desde el servidor FTP hasta el servidor HTTP
Mediante la función:
ftp_get($x,nloc,nrem,modo)
se transfiere un fichero desde un servidor FTP hasta un directorio del servidor HTTP en el que se está ejecutando PHP.
La cadena nloc contiene el nombre con el que el fichero será copiado en el directorio actual del servidor web y la cadena nrem contiene el nombre (incluyendo el path) del fichero que debe ser trasferido.
El parámetro modo puede contener uno de estos valores: FTP_ASCII o FTP_BINARY
Desde el servidor HTTP hasta el servidor FTP
Para realizar transferencias en sentido contrario al anterior se utiliza la siguiente sintaxis:
ftp_put($x,nrem,nloc,modo)
Se comporta de forma idéntica a la función anterior. La cadena nrem sigue siendo el nombre y el path del servidor FTP (donde vamos a copiar el fichero) y nloc contiene el nombre del fichero en el servidor web (origen de la transferencia).
Modificación de ficheros en el servidor FTP
ftp_rename($x,nant,nnuevo)
Cambia el nombre del fichero nant por el indicado en la cadena nnuevo.
ftp_delete($x,fichero)
Elimina -en el servidor FTP- el fichero indicado en la cadena fichero.
Información sobre ficheros del en el servidor FTP
ftp_size($x,nomfile)
Devuelve el tamaño (en bytes) del fichero que se indica en la cadena nomfile.
ftp_mdtm($x,nomfile)
Esta función devuelve la fecha de la última modificación del fichero indicado en la cadena nomfile. Esta fecha se indica en tiempo Unix.
No hay comentarios:
Publicar un comentario