Array a Directorios en PHP

En esta ocasión les vengo a compartir una función en PHP que desarrollé para un proyecto propio, en el cual surgió la necesidad de crear una estructura de directorios a partir de un arreglo que representa la estructura deseada.

Verán supongamos que tenemos el siguiente arreglo:

$dir = array('libs',
             'inc',
             'img' => array('full', 'thumbs'));

Como podrán ver se supone que este arreglo representa la siguiente estructura de directorios:

  • libs
  • inc
  • img
    • full
    • thumbs

Bien, la razón de ser de esta función, es crear algo que se pueda reutilizar para crear aplicaciones web con PHP de manera flexible y sencilla, en la cual podamos indicar los directorios que vamos a utilizar y nos ayude a crear la estructura de directorios.

Esta función es recursiva, por lo que cabe destacar que no importa cuantos sub-niveles tenga el arreglo que utilicemos, va a funcionar. Para que la función realice su trabajo necesita dos datos:

  1. El directorio base a partir del cual se creara la estructura de directorios (por lo general sera el directorio donde esta nuestro proyecto)
  2. El arreglo que contiene la estructura deseada

Sin más rodeos paso a mostrarles el código de la función:

function arrayToDirs($root, $structDir) {
	foreach($structDir as $key => $item) {
		if(is_array($item)) {
			arrayToDirs($root . DIRECTORY_SEPARATOR . $key, $item);
		}else{
			if(!file_exists($root . DIRECTORY_SEPARATOR . $item))
				mkdir($root . DIRECTORY_SEPARATOR . $item, 0777, true);
		}
	}
}

NOTA: Esta función no la he probado en Linux, pero no veo ningún inconveniente para que no funcione, en cualquier caso no creo que necesite un cambio significativo para funcionar en Linux, en caso de que no funcione.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.