PHP Manejo de Directorios
Internet > PHP > Manejo de archivos
Manejo de Directorios en PHP
En PHP, la gestión de directorios es esencial para muchas aplicaciones que trabajan con el sistema de archivos. Las operaciones más comunes incluyen la creación, cambio de ubicación y eliminación de directorios.
Este artículo explora las funciones PHP más utilizadas para gestionar directorios: mkdir(), chdir(), getcwd(), y rmdir(). Acompañaremos la explicación de cada función con ejemplos detallados para ayudarte a comprender su funcionamiento.
La función mkdir(): Creación de directorios
La función mkdir() permite crear un nuevo directorio en una ubicación especificada.
Su sintaxis es la siguiente:
mkdir(
string $directory,
int $permissions = 0777,
bool $recursive = false,
?resource $context = null
): bool
Parámetros:
$directory (obligatorio): Especifica la ruta absoluta o relativa del nuevo directorio.
$permissions (opcional): Indica los permisos para el directorio. Su valor predeterminado es 0777 (lectura, escritura y ejecución para todos). Este valor es ignorado en sistemas Windows.
$recursive (opcional): Si se establece en true, crea también los directorios padre que no existan.
$context (opcional): Un recurso de flujo (stream) que se utiliza en situaciones avanzadas.
Ejemplo 1: Crear un directorio simple
Este ejemplo crea un directorio en la ubicación actual:
$dir = "./nuevodir/";
if (mkdir($dir)) {
echo "Directorio creado: $dir";
} else {
echo "Error al crear el directorio";
}
Ejemplo 2: Crear un directorio con permisos personalizados
Puedes especificar los permisos del directorio al crearlo:
$dir = "/ruta/absoluta/nuevodir";
$permisos = 0755; // Lectura y ejecución para todos, escritura solo para el propietario
mkdir($dir, $permisos);
Ejemplo 3: Crear un directorio de manera recursiva
Cuando se desea crear múltiples subdirectorios a la vez:
$dirs = "./directorio1/subdir2/subdir3/";
mkdir($dirs, 0777, true); // Crea todos los subdirectorios que no existan
La función chdir(): Cambiar el directorio actual
La función chdir() cambia el directorio de trabajo actual a una ruta específica, de manera similar al comando cd en sistemas operativos. Su sintaxis es:
chdir(string $directory): bool
Ejemplo: Cambiar el directorio actual
$dir = "/nueva_ruta/";
if (chdir($dir)) {
echo "Directorio cambiado a: " . getcwd();
} else {
echo "No se pudo cambiar el directorio";
}
La función getcwd(): Obtener el directorio actual
La función getcwd() devuelve la ruta completa del directorio de trabajo actual. Es útil para confirmar el directorio donde estás operando.
Ejemplo: Obtener el directorio actual
echo "Directorio actual: " . getcwd();
La función rmdir(): Eliminar directorios
La función rmdir() elimina un directorio si está vacío. Si el directorio contiene archivos, no podrá ser eliminado, y se debe vaciar antes de intentar eliminarlo.
Sintaxis:
rmdir(string $directory): bool
Ejemplo 1: Eliminar un directorio vacío
$dir = "./nuevodir/";
if (rmdir($dir)) {
echo "Directorio eliminado: $dir";
} else {
echo "Error al eliminar el directorio, podría no estar vacío.";
}
Ejemplo 2: Eliminar múltiples directorios recursivamente
Si necesitas eliminar un directorio junto con su contenido, deberás primero eliminar los archivos y subdirectorios en su interior antes de eliminar el directorio principal:
function eliminarDirectorio($dir) {
if (!is_dir($dir)) {
return false;
}
$items = scandir($dir);
foreach ($items as $item) {
if ($item == '.' || $item == '..') {
continue;
}
$itemPath = $dir . "/" . $item;
if (is_dir($itemPath)) {
eliminarDirectorio($itemPath);
} else {
unlink($itemPath);
}
}
return rmdir($dir);
}
$dir = "./directorio_con_contenido/";
if (eliminarDirectorio($dir)) {
echo "Directorio eliminado: $dir";
} else {
echo "Error al eliminar el directorio.";
}
Conclusión
Este artículo ha explicado las funciones clave en PHP para la gestión de directorios, con ejemplos detallados y fáciles de entender. Las funciones mkdir(),