Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/06/2011, 14:53
Joselito36
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 14 años
Puntos: 6
Respuesta: Como saber cuando se crea nuevo archivo en una carpeta FTP?

Gracias GatorV .

Al final lo he resuelto gracias a la ayuda e ideas que me habéis dado ambos. Muchas gracias.

Pongo aquí el script por si a alguien le parece interesante.

Código PHP:
Ver original
  1. <?php
  2. //hay que poner los datos del FTP
  3. $ftp_server='ftp.loquesea.com';
  4. $ftp_user_name='[email protected]';
  5. $ftp_user_pass='tu_password_del_ftp';
  6.  
  7. // establecer una conexión básica
  8. $conn_id = ftp_connect($ftp_server);
  9. // iniciar sesión con nombre de usuario y contraseña
  10. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  11. // obtener la lista de archivos de /
  12. $buff = ftp_rawlist($conn_id, '/');
  13. // cerrar la conexión ftp
  14. ftp_close($conn_id);
  15. //Cuento el nº de archivos y lo guardo en la variable $result
  16. $result = count($buff);
  17. echo 'Hay '.$result.' archivos en la carpeta<br/><br/>';
  18.  
  19. //ahora leo un archivo que he creado previamente con el nº de archivos que hay en el ftp. O sea creo un archivo de texto llamado como yo quiera y le asigno la variable $archivo. En ese archivo de texto lo único que pondré será un número correspondiente al total de archivos que hay en la carpeta. Por ejemplo 23
  20. $archivo = './miruta/cuenta_archivos.txt';
  21.  
  22. $contenido_archivo = file_get_contents($archivo);
  23. echo 'Y anteriormente había '.$contenido_archivo.' archivos.<br/><br/>';
  24.  
  25. //ahora comparo los resultados
  26. if ($result > $contenido_archivo) {  //si es mayor el número de archivos del que hay en el archivo de texto que he creado, entonces manda email
  27. //mando email avisando que hay cambios
  28. echo 'Como hay uno o más archivos nuevos mando email avisando de ello';
  29.  
  30. //ahora grabo el nuevo nº resultante de archivos en el archivo de texto para que actualice el numero en el archivo.
  31. $fp = fopen($archivo, 'w');
  32. fwrite($fp, $result);
  33. fclose($fp);
  34. }
  35. else {
  36. echo 'No hay ningún archivo nuevo en la carpeta y entonces no tengo que hacer nada';
  37. }
  38. //fin del script
  39. ?>

Última edición por Joselito36; 15/06/2011 a las 14:59