Foros del Web » Programando para Internet » PHP »

Conexion FTP con exec() o system()

Estas en el tema de Conexion FTP con exec() o system() en el foro de PHP en Foros del Web. Hola maesr@s; estoy intentando abrir una conexión por FTP a través de las funciones de PHP, pero no lo consigo. Supongo que algún parámetro me ...
  #1 (permalink)  
Antiguo 30/04/2004, 05:17
Avatar de kco
kco
 
Fecha de Ingreso: septiembre-2001
Mensajes: 249
Antigüedad: 22 años, 5 meses
Puntos: 0
Conexion FTP con exec() o system()

Hola maesr@s;

estoy intentando abrir una conexión por FTP a través de las funciones de PHP,
pero no lo consigo. Supongo que algún parámetro me debe de faltar.

Pero mi consulta va por otro lado.
¿Es posible en un script de PHP hacer la conexion por ftp
con la funcion exec() o con la funcion system()?

Supongo que seria algo como:

exec("ftp www.mi-ip.com")

Puesto que desde el Símbolo del sistema de Windows 2000 funciona ese comando para
conectarme por ftp.

Muchas gracias y un abrazo de un PHPero+
kco

__________________
"No tengas miedo de ir despacio, teme quedarte quieto."
  #2 (permalink)  
Antiguo 30/04/2004, 07:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Con las funciones exec(), system() y afines .. lo único que haces es ejecutar un comando en la "consula" (línea de comandos) del Sistema Operativo de tu servidor ..

Si tu tienes en tun W2000 un cliente FTP que puedas llamarlo desde línea de comandos pasandole los parámetros que este requiera para conectarse y demás .. podrías usar exec() o cualquier función afin.

Pero .. lo ideal es que uses las funciones FTP y que esa gestión lo haga PHP. Así evitaras problemas de seguridad (si usas "safe mode" no vas a poder ni usar exec() ...) y sobre todo compatibilidad y portabilidad ya que haras un código que funcionará en cualquier servidor (S.O. y configuración) ..

Si los problemas intentas solventarlos en lugar de buscar alternativas .. veras que te irá mejor. Tienes que llegar siempre al fondo del problema y tal vez sacar alguna conclusión como: "no tengo soporte FTP en mi PHP .. y no tengo control del servidor como para instalar dicho soporte" .. en ese caso.. habría que ver otras alternativas (no sólo exec() .. podría ser por sockets directo implementado en protocolo del FTP integro (hay classes que lo hacen www.phpclasses.org .. que es lo mismo que hace PHP al usar tus funciones de FTP).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/04/2004, 15:46
 
Fecha de Ingreso: diciembre-2003
Ubicación: Salamanca
Mensajes: 123
Antigüedad: 20 años, 3 meses
Puntos: 3
Aquí va algo sobre las funciones de ftp:

//conectar
$conexion=ftp_connect(servidor,puerto);

//nos identificamos
$acceso=ftp_login(conexion,nombre de usuario, contraseña);

//conocemos el tipo de sistema del servidor
$tipo_sis=@ftp_systype($conexion);

//nos movemos a un directorio (también ftp_cdup)
ftp_chdir($conexion,$dirActual);

//obtenemos el directorio en el que nos encontramos
$dirActual=ftp_pwd($conexion);

//invocamos a GET para bajar un archivo
ftp_fget(conexion,identificador del puntero al fichero local,
nombre del fichero del servidor remoto,modalidad)
/*Por ejemplo, para bajar del servidor el archivo informa.txt, suponiendo que estamos ya en el directorio que lo incluye, y almacenarlo en el directorio local /tmp con nombre informacion.txt en modalidad ASCII, escribiremos:*/
$fichero=ftp_fget($conexion,"/tmp/informacion.txt",
"informa.txt",FTP_ASCII);

//borramos el fichero $file
ftp_delete($conexion,"$file")
  #4 (permalink)  
Antiguo 30/04/2004, 15:53
 
Fecha de Ingreso: diciembre-2003
Ubicación: Salamanca
Mensajes: 123
Antigüedad: 20 años, 3 meses
Puntos: 3
Perdón, no quise enviarlo y se me ha cortado
Algo más:

Código PHP:
//borra un directorio
ftp_rmdir($conexion,"$file"))

//crea un directorio
ftp_mkdir(conexion,nombre del directorio del servidor remoto)

//renombra un fichero
ftp_rename(conexion,nombre original de fichero,
           
nuevo nombre del fichero)

//devuelve una lista detallada de ficheros del directorio indicado
//en una matriz
ftp_rawlist(conexion,nombre del directorio)

//subir un fichero
ftp_fput(conexionnombre fichero subido a servidor remoto,
         
identificador del puntero al fichero localmodalidad)

//devuelve el tamaño de un fichero
ftp_size(conexion,nombre del fichero remoto)

//cierra la conexión (también ftp_quit)
ftp_close(conexion

//ejecuta un programa en el servidor
ftp_exec(conexion,comando)

//devuelve la fecha de última modificación
ftp_mdtm(conexion,fichero remoto
Espero que al menos sirva de orientación.
Saludos.
dobeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:42.