Na primeira função da classe abaixo eut enho uma variável que desejaria recuperá-la para montar links na segunda função, mas não consigo pois é um array multidimensional e eu não consigo trabalhar.
Tem explicado a variável e o que eu desejo no meio da classe.
Pergunta
paulo_aa
Na primeira função da classe abaixo eut enho uma variável que desejaria recuperá-la para montar links na segunda função, mas não consigo pois é um array multidimensional e eu não consigo trabalhar.
Tem explicado a variável e o que eu desejo no meio da classe.
----------------------------------------------------------------------------------------------------------------------------
if (PHP_OS == "WIN32") {
define("BARRA", "\\");
} else {
define("BARRA", "/");
}
class ArvoreDiretorios {
function executa($diretorio)
{
$array_dados = ArvoreDiretorios::lerDiretorio($diretorio);
ArvoreDiretorios::mostraArvore($array_dados, 0);
}
/**
* Esta função lê o diretório passado e pega o espaço total
* ocupado pelos arquivos e diretórios, retornando tudo em um
* array
*
* @author Silvano Girardi Jr. <sgj@dr.com>
*/
function lerDiretorio($nome)
{
$retorno = array();
if ( isset($nome) ) {
$handle = @opendir($nome);
if (!$handle) {
return "Não foi possível abrir o diretório";
}
$tamanho = 0;
while($filename = readdir($handle)) {
if ( $filename != "." && $filename != ".." && is_dir($nome.BARRA.$filename) && $filename != "peqs" ) {
//Nessa altura aqui eu já tenho a variável $filename que eu queria mandá-la pra o array e recuparar na segunda função dessa classe
$temp = ArvoreDiretorios::lerDiretorio($nome.BARRA.$filename);
if ( is_array($temp) ) {
if ( !isset($retorno[$nome]) or !is_array($retorno[$nome]) ) {
$retorno[$nome] = array();
}
$retorno[$nome] = array_merge($retorno[$nome], $temp);
} else {
$tamanho += $temp;
}
}
}
closedir($handle);
if ( !isset($retorno[$nome]) or !is_array($retorno[$nome])) {
$retorno[$nome] = array();
}
array_push($retorno[$nome], number_format($tamanho, 2, ".", ","));
return $retorno;
} else {
return "Erro. Não foi possível varrer o(s) diretório(s).";
}
}
/**
* Esta função é uma modificação da versão apresentada nos comentários
* da função dir() no site php.net/dir por 'de\kibo\niels'
*/
function mostraArvore ($array_dados, $profundidade) {
//Eu queria recuperar a variável $filename aqui
foreach ($array_dados AS $nome => $tamanho) {
if (is_array($tamanho)) {
for ($i = 0; $i < $profundidade - 1; $i++) {
echo "<span class='espaco'> </span>";
}
De modo a trabalhar com ela e o $nome correspondende a ela aqui
echo "<span class='principal'><a href='" . $nome . "'>" . $filename . "</a></span><br />";
echo "\n";
$profundidade++;
ArvoreDiretorios::mostraArvore($tamanho, $profundidade);
$profundidade--;
}
}
}
}
----------------------------------------------------------------------------------------------------------------
Se alguém puder me ajudar eu ficaria muito grato.
Obrigado desde já. :)
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.