Return to Snippet

Revision: 2191
at January 12, 2007 11:41 by nicolaspar


Initial Code
<?php
function include_dir($path,$read=false) {
    //separador de directorios
    $s = '/';
    //vemos si es la primera vez que usamos la funcion
    if(!$read) {
        //obtenemos los dos ultimos caracteres
        $tree = substr($path,-2);
        if($tree=='.*') {
            //eliminamos el asterisco y activamos la recursividad
            $path = preg_replace('!\.\*$!','',$path);
            $read = true;
        }
        //obtenemos el document_root del archivo en caso de usarse
        $path = preg_replace('!^root\.!',$_SERVER['DOCUMENT_ROOT'].$s,$path);
        //cambiamos el punto por el separador
        $path = str_replace('.',$s,$path);
    }
    //abrimos el directorio
    if ($handle = opendir($path)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                //si es un directorio lo recorremos en caso de activar la recursividad
                if(is_dir($path.$s.$file) and $read) {
                    include_dir($path.$s.$file,true);
                } else {
                    $ext = substr(strtolower($file),-3);
                    if($ext == 'php') @include_once($path.$s.$file);
                }
            }
        }
        //cerramos el directorio
        closedir($handle);
    }
}

//ejemplos
//incluir el directorio "lib"
include_dir('lib');
//incluir todos los archivos que contenga "lib" esten en ese directorio o dentro de otros
include_dir('lib.*');
//incluir el directorio "lib" con ruta absoluta
include_dir('root.lib');
//incluir todos los archivos que contenga "lib" esten en ese directorio o dentro de otros
include_dir('root.lib.*');

?>

Initial URL

                                

Initial Description

                                

Initial Title
PHP - Incluir todo un directorio de archivos

Initial Tags

                                

Initial Language
PHP