Olá! Quarta Feira, 08 de Fevereiro de 2012.



Dicas CódigoFonte.net
Terça Feira, 06 de Janeiro 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 = <MEUFILE>;
close (MEUFILE);

print "<b>Arquivo $dados</b>: @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 » CodigoFonte.eti.br » Compre De Tudo » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010

Procurando Notebooks, Câmeras Digitais, iPhones?

CompreDeTudo.com