glob() no Linux
Salve turma!
Cá estou novamente. xD
O problema:
A leitura de diretorios/arquivos via glob() não está funcionando no linux, no windows: beleza!
Já tentei inúmeras modificações e já estou quase desistindo da função... :(
O Código:
$_DIR = new Diretorio(DIR_Modulos.'/admin');
$_DIR->arvore('*.mod.php');
// ARVORE
function arvore( $regex = '', $dirURL = '' ) { global $_SIS;
$_rt = array();
$dirURL = $dirURL ? $_SIS['dir']['root'].'/'.$dirURL : $_SIS['dir']['root'].'/'.$this->dirURL;
$dirNome = basename($dirURL);
$pattern = $regex ? $dirURL.'/'.$regex : $dirURL.'/*';
$_glob = glob($pattern, GLOB_BRACE);// forca coleta de subdiretorios caso haja regex restritiva para arquivos
if ( $regex )
{ $_dir = glob($dirURL.'/*', GLOB_ONLYDIR);
$_glob = !empty($_dir) ? array_merge($_glob, $_dir) : $_glob;
}
$arqC = 0;
$dirC = 0;
$bytesC = 0;
foreach($_glob as $objeto) {
if ( is_file($objeto) )
{ $arqC++;
$_rt[$arqC] = basename($objeto);
$bytesC += $this->bytes($objeto);
$this->_url[] = $objeto;
} else
if ( is_dir($objeto) )
{ $dirC++;
$_rt += is_readable($objeto) ? $this->arvore($regex, str_replace($_SIS['dir']['root'].'/', '', $objeto)) : array();
}
}
$this->_info[$dirURL] = array('arquivos' => $arqC, 'pastas' => $dirC, 'tamanho' => $this->tamanho($bytesC));
return array($dirNome => $_rt);
}O Objetivo:
Coletar todos os arquivos com final ".mod.php" no dir e subs.
Alguma luz senhores?
Discussão (3)
Carregando comentários...