init.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php

/*
    Función para incluir todos los archivos de un directorio
    Daniel Mota <daniel.mota@gmail.com>
*/

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.*');

?>
PHP-Hispano.net - Porque al final, todos acabamos aprendiendo.