[SOLUCIONADO] Eliminar carpeta con contenido desde PHP

Iniciado por Only, Junio 27, 2013, 05:10:31 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 27, 2013, 05:10:31 PM Ultima modificación: Marzo 27, 2014, 05:30:34 PM por Expermicid
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

<?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

Hi Onlye esta funcion la tenia en el pc ;)

Código: php
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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



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:

Código: text

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


Saludos!  :D

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Junio 28, 2013, 06:09:46 AM #3 Ultima modificación: Marzo 27, 2014, 05:30:44 PM por Expermicid
No tienes permitido ver los links. Registrarse o Entrar a mi 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:

Código: text

<?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
<?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');
}

?>

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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Julio 01, 2013, 12:05:29 PM #5 Ultima modificación: Marzo 27, 2014, 05:30:54 PM por Expermicid
Muchas gracias a todos pero ya pude hacerlo , como quiera les dejo la funcion por si alguien la ocupa

Código: php


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

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

unlink($archivos_carpeta);   

rmdir($mis_fotos);