Olá! Thursday, 28 de March de 2024.



Dicas CódigoFonte.net
Tuesday, 06 de January de 2004

Lendo diretórios em PHP

Olá galera, tudo bem?

Como a primeira matéria/dica em CGI-Perl, irei ensinar hoje a como ler diretórios e abrir arquivos nos mesmos.

O código é simples, segue:

opendir (MEUDIR, "/home/LOGIN/www/meudir"); @pegoodir = readdir(MEUDIR); closedir (MEUDIR);

Explicando o código:

- opendir (MEUDIR, "/home/LOGIN/www/meudir");
- Este código abre o diretório especificado

- @pegoodir = readdir(MEUDIR);
- Neste, coloco todos os arquivos do diretório em um vetor (o @pegoodir é um vetor).

- closedir (MEUDIR);
- Encerro a leitura do diretório

1. Lendo os arquivos do diretório e imprimindo seus dados

Irei utilizar o comando foreach para pegar os nomes dos arquivos no vetor e abrí-los.

A seguir o código e a explicação da utilização parte a parte.

#!/usr/bin/perl print "Content-type: text/html"; # Digo ao script o conteúdo do documento # abro o diretório opendir (MEUDIR, "/home/LOGIN/www/meudir"); @pegoodir = readdir(MEUDIR); closedir (MEUDIR); # já peguei todos os dados e armazenei no vetor, fecho o diretório foreach (@pegoodir) { $dados = $_; # como só existe uma coluna no vetor, utilizei o $_ para pegar esta coluna. if ($dados eq ".") { next; } #prossigo se o nome do arquivo for só . (ver explicação abaixo) if ($dados eq "..") { next; } #prossigo se o nome do arquivo for só .. open (MEUFILE, "/home/LOGIN/www/meudir/$dados"); @minhas_linhas = ; close (MEUFILE); print "Arquivo $dados: @minhas_linhas "; # imprimo os arquivos do diretório. } # fecho o foreach

Agora explicando o comando:

if ($dados eq ".") { next; } #prossigo se o nome do arquivo for só . if ($dados eq "..") { next; } #prossigo se o nome do arquivo for só ..

Um diretório é formado pela seguinte sequencia:

. # este significa a volta a pasta raiz .. # este volta para a pasta anterior a # pasta de nome a b # pasta de nome b c # pasta de nome c a.EXT # arquivo a.ext b.EXT # arquivo b.ext c.EXT # arquivo c.ext

Utilizei o código porque, sem ele, o script intenderá o dado "." e ".." como arquivos e irá abrí-los, demorando na execução do sistema.

Inserindo este comando next; , pulo para a próxima ação, excluindo a atual.

Bom, por hoje é só.

Até mais galera.

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010