Tema: FTP con PHP
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/09/2011, 07:25
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: FTP con PHP

No entiendo muy bien el objeto de listar por ftp tu public_html, mejor podrias hacerlo por http.

De todas maneras algo asi te va a funcionar, aunque requiere de bastantes mejoras

Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors', 0);
  3. $servidor_ftp = '127.0.0.1';
  4. $usuario_ftp = 'xxx';
  5. $clave_ftp = 'xxx';
  6. $conectar_ftp = ftp_connect($servidor_ftp);
  7. $loguin_ftp = ftp_login($conectar_ftp, $usuario_ftp, $clave_ftp);
  8. $cambiar = $_GET['cambiar'];
  9. $script = $_SERVER['PHP_SELF'];
  10. function es_directorio($directorio) {
  11.    global $conectar_ftp;
  12.    if (ftp_chdir($conectar_ftp, $directorio)) {
  13.       ftp_chdir($conectar_ftp, '..');
  14.       return true;
  15.    } else {
  16.       return false;
  17.    }
  18. }
  19.  
  20. function listar_dir($ruta) {
  21.    global $conectar_ftp,$servidor_ftp;
  22.    $elementos = ftp_nlist($conectar_ftp, $ruta);
  23.    foreach($elementos as $archivo) {
  24.       if ($archivo!='.'&&$archivo!='..') {
  25.          if (es_directorio($archivo)) {
  26.             echo "<a href='$script?cambiar=$archivo'>$archivo</a> [directorio]<br>";
  27.          } else {
  28.             echo "$archivo<br>";
  29.          }
  30.       }
  31.    }
  32. }
  33. if(isset($cambiar)){
  34. listar_dir($cambiar);
  35. }else{
  36. listar_dir('/');
  37. }
  38. ?>

el display_errors debe estar en 0 porque ftp_chdir() siempre genera un warning cuando $archivo no sea un directorio

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.