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
<?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 ;)
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
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
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
<?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
Muchas gracias a todos pero ya pude hacerlo , como quiera les dejo la funcion por si alguien la ocupa
$mis_fotos = "./cursos/".$curso;
foreach(glob($mis_fotos."/*.*") as $archivos_carpeta)
{
unlink($archivos_carpeta);
}
rmdir($mis_fotos);