Manipulando diretórios com PHP
Hoje quero ensinar a você caro amigo programador a manipular diretórios utilizando a linguagem de programação PHP. Não é um recurso muito utilizado mas mesmo assim vale a pena conhece-lo apesar de muita gente achar que é um bicho de 7 cabeças, você verá que algo bem simples!
No PHP já existe uma função para cada tarefa que irei ensinar aqui hoje: criar e deletar (mover e renomear pastas ficará para um outro artigo).
Para criar uma pasta exiset a função mkdir() que é bem fácil de usar… O caminho da pasta a ser criada é - normalmente - relativo ao script atual, e durante a criação você pode definir os níveis de permissões da pasta (CHMOD) e se essa criação vai ser recursive
Criar e deletar pasta
Crie um arquivo index.php dentro da pasta onde está instalado o seu servidor e adicione o seguinte código:
<?php
$name = "images";
if(!is_dir($name)){
mkdir($name);
echo "Diretório $name criado com sucesso";
}else{
rmdir($name);
echo "diretorio $name já existe e foi removido";
}
?>
No código acima criamos uma variável do tipo string que recebe o valor "images", este será o nome do nosso diretório. Caso não exista (!is_dir) este diretório nós o criamos utilizando a função mkdir() e exibimos na tela a mensagem de sucesso. O else será chamado quando você atualizar sua página pois a condição do if será falsa pois já existe o diretório que acabamos de criar. Dentro do else executamos a função rmdir() que exclui o nosso diretório e exibimos a mensagem que ele foi deletado.
Listando os arquivos da nossa pasta
Adicione algumas imagens dentro da pasta que foi criada através do nosso código PHP, você baixar algumas imagens do Google ou caso você possuir algumas imagens em sua máquina copie e cole algumas delas dentro do nosso diretório "images".
Feito isso crie um novo arquivo scan.php dentro da mesma pasta onde encontra-se o seu arquivo index.php e a sua pasta images. Adicione o seguinte código no scan.php:
<?php
$images = scandir("images");
var_dump($images);
?>
No código acima nós utilizamos a função PHP scandir() para listar todos os arquivos do nosso diretório images. Logo abaixo utilizamos uma função muito utilizada que é a var_dump() para exibir o nosso array de arquivos que a função scandir() nos retorna. No meu caso foi a seguinte saida:
Obter dados do arquivo
Vamos obter alguns dados dessas imagens que acabamos de inserir dentro da nossa pasta. Adicione o seguinte código no seu arquivo scan.php:
<?php
$images = scandir("images");
// var_dump($images);foreach($images as $img){
if(!in_array($img, array(".", ".."))){
$filename = "images" . DIRECTORY_SEPARATOR . $img;
$info = pathinfo($filename);
var_dump($info);
}
}
?>
No código acima nós comentamos aquele var_dump() para não vermos mais a saída da função scandir() e fizemos um foreach() para percorrer o nosso array que listamos no tópico acima. Dentro do foreach() não nos interessa aquele "." nem o ".." que está no nosso array $images, então nós utilizamos a função in_array() que basicamente procura elementos que passamos no segundo parâmetro no nosso array que passamos no primeiro parâmetro. Utilizei o sinal ! para negar minha função in_array pois só queremos o que não for "." nem "..".
Dentro do nosso if() criamos uma variável chamada $filename que recebe a string "images" (nome da nossa pasta) concatenando com DIRECTORY_SEPARATOR que nada mais é a barra do seu sistema operacional (Windows, Linux, MacOS) e a variável $img que é o valor que estamos percorrendo no nosso array ou seja nosso arquivo dentro da nossa pasta.
Criamos a variável $info que recebe a função do PHP pathinfo() que retorna um array de informações do nosso arquivo e depois utilizei a função de saída de dados var_dump() novamente para exibir estes dados em nossa tela, no meu caso retornou os seguintes array's:
Com o PHP conseguimos criar uma diretório, listar os arquivos deste diretório, listar algumas informações deste arquivo e temos mais um leque de possibilidades que poderíamos fazer com este exemplo. Espero que tenha gostado, até a próxima ;D