Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Only en Junio 27, 2013, 05:10:31 PM

Título: [SOLUCIONADO] Eliminar carpeta con contenido desde PHP
Publicado por: Only en Junio 27, 2013, 05:10:31 PM
Buenas tardes a todos, vengo a pedirles un poco de ayuda para eliminar una carpeta desde PHP, les explico:

En mi servidor tengo una carpeta llamada "cursos", la cual es la encargada de almacenar los curso  ;), dentro de esta carpeta creo subcarpetas desde otro formulario.

El detalle es que cuando quiero eliminar el curso de la DB tambien quiero que se elimine la carpeta que le corresponde para que no ocupe espacio en el servidor.

Mi duda es como hacerlo

Les dejo lo que tengo de PHP, pero asi solo me lo elimina si el directorio esta vacio

Código (php) [Seleccionar]

<?php

include 'start_connection.php';

$curso $_POST['curso'];
$registro mysql_query("SELECT ID FROM cursos WHERE nombre='$curso'",$conexion) or die(mysql_error());

if(
$reg mysql_fetch_array($registro)){
mysql_query("DELETE FROM cursos WHERE nombre='$curso'",$conexion);

$directorio $curso;  
$dirmake rmdir("./cursos/".$directorio);

/*------------------------------------------------------------*/
/*           Aqui se eliminaria la carpeta                                                 */
/*------------------------------------------------------------*/

header('Location: operacion_correcta_panel.php');
}else{
header('Location: operacion_incorrecta_panel.php');
}

?>



Espero me puedan ayudar

Muchas gracias a todos

Saludos
Título: Re:[Ayuda]Eliminar carpeta con contenido desde PHP
Publicado por: Snifer en Junio 27, 2013, 07:23:25 PM
Hi Onlye esta funcion la tenia en el pc ;)

Código (php) [Seleccionar]
function deleteDirectory($folder)
   {
       foreach(glob($folder . "/*") as $archivos_carpeta)
      {
            echo $files_folder;

           if (is_dir($files_folder))
         {
            deleteDirectory($files_folder);
         }
           else
            {
                unlink($files_folder);
             }
         }

     rmdir($folder);
}


Regards,
Snifer
Título: Re:[Ayuda]Eliminar carpeta con contenido desde PHP
Publicado por: StuXn3t en Junio 28, 2013, 03:04:45 AM
Hola Only, tal vez algo que te pueda servir es la siguiente función en PHP, la cual forza el borrado de la carpeta y lo hace de manera recursiva:


<?php
       $dir
='tu/directorio';
       
exec('rm -rf '.escapeshellarg($dir));
?>



Saludos!  :D
Título: Re:[Ayuda]Eliminar carpeta con contenido desde PHP
Publicado por: Only en Junio 28, 2013, 06:09:46 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Hola Only, tal vez algo que te pueda servir es la siguiente función en PHP, la cual forza el borrado de la carpeta y lo hace de manera recursiva:


<?php
       $dir
='tu/directorio';
       
exec('rm -rf '.escapeshellarg($dir));
?>



Saludos!  :D

Hola bro ya lo estuve checando pero no me borra la carpeta , te dejo el codigo para ver que puede ser, te comento que el nombre del curso lo recibo desde otro formulario con el metodo POST

Código (php) [Seleccionar]
<?php

include 'start_connection.php';

$curso $_POST['curso'];
$registro mysql_query("SELECT ID FROM cursos WHERE nombre='$curso'",$conexion) or die(mysql_error());

if(
$reg mysql_fetch_array($registro)){
mysql_query("DELETE FROM cursos WHERE nombre='$curso'",$conexion);

$directorio $curso;  
$dirmake exec('rm -rf'.rmdir("./cursos/".$directorio));

/*------------------------------------------------------------*/
/*           Aqui se eliminaria la carpeta                    */
/*------------------------------------------------------------*/

       
$dir=$curso;
       
exec('rm -rf '.escapeshellarg("./cursos/".$dir));

header('Location: operacion_correcta_panel.php');
}else{
header('Location: operacion_incorrecta_panel.php');
}

?>
Título: Re:[Ayuda]Eliminar carpeta con contenido desde PHP
Publicado por: Snifer en Junio 28, 2013, 09:13:34 AM
Lo que te mande tienes que agregar dicha funcion e implementarla ya que consulta y  hace la eliminacion de forma recursiva!

Ademas de ello la opcion que te dio undercoder solo llega a funcionar si la corres dentro de un servidor UNIX!

Regards,
Snifer
Título: Re:[Ayuda]Eliminar carpeta con contenido desde PHP
Publicado por: Only en Julio 01, 2013, 12:05:29 PM
Muchas gracias a todos pero ya pude hacerlo , como quiera les dejo la funcion por si alguien la ocupa

Código (php) [Seleccionar]


$mis_fotos = "./cursos/".$curso;     

foreach(glob($mis_fotos."/*.*") as $archivos_carpeta) 

unlink($archivos_carpeta);   

rmdir($mis_fotos);