Trabalhar com arquivos e diretórios é uma tarefa comum em desenvolvimento web. PHP oferece várias funções para manipular pastas e diretórios, permitindo que você crie, renomeie, exclua e liste arquivos de forma eficaz. Neste post, vamos explorar as principais funções e técnicas para gerenciar pastas e diretórios em PHP!
Criando diretórios
Para criar um novo diretório em PHP, você pode usar a função mkdir()
. Esta função aceita dois parâmetros: o nome do diretório e uma flag opcional para definir permissões.
Exemplo de criação de diretório
<?php
$nomeDiretorio = "novos_diretorios";
if (!is_dir($nomeDiretorio)) {
mkdir($nomeDiretorio);
echo "Diretório '$nomeDiretorio' criado com sucesso!";
} else {
echo "O diretório '$nomeDiretorio' já existe.";
}
?>
Listando diretórios
Para listar os arquivos em um diretório, você pode usar a função scandir()
, que retorna um array com os nomes dos arquivos e diretórios.
Exemplo de listagem de diretório
<?php
$diretorio = "nova_pasta";
if (is_dir($diretorio)) {
$arquivos = scandir($diretorio);
echo "Conteúdo do diretório '$diretorio':";
foreach ($arquivos as $arquivo) {
if ($arquivo != '.' && $arquivo != '..') {
echo "\n - $arquivo";
}
}
} else {
echo "O diretório '$diretorio' não existe.";
}
?>
Aqui, usamos um loop para exibir todos os arquivos e pastas, ignorando os diretórios especiais .
e ..
.
Renomeando um diretório
Para renomear um diretório, você pode usar a função rename()
. Basta passar o nome atual e o novo nome como argumentos.
Exemplo:
<?php
$diretorioAntigo = "nova_pasta";
$diretorioNovo = "pasta_atualizada";
if (is_dir($diretorioAntigo)) {
rename($diretorioAntigo, $diretorioNovo);
echo "Diretório renomeado para '$diretorioNovo' com sucesso!";
} else {
echo "O diretório '$diretorioAntigo' não existe.";
}
?>
Excluindo um diretório
Para excluir um diretório vazio, você pode usar a função rmdir()
. Para excluir um diretório que contém arquivos, você precisará removê-los primeiro.
Exemplo para diretório vazio:
<?php
$diretorio = "pasta_atualizada";
if (is_dir($diretorio)) {
rmdir($diretorio);
echo "Diretório '$diretorio' excluído com sucesso!";
} else {
echo "O diretório '$diretorio' não existe.";
}
?>
Exemplo para diretório com arquivos:
Para excluir um diretório que não está vazio, você pode criar uma função recursiva:
<?php
function excluirDiretorio($dir) {
if (!is_dir($dir)) {
return;
}
$itens = scandir($dir);
foreach ($itens as $item) {
if ($item != '.' && $item != '..') {
$caminho = "$dir/$item";
if (is_dir($caminho)) {
excluirDiretorio($caminho); // Chamada recursiva
} else {
unlink($caminho); // Remove arquivo
}
}
}
rmdir($dir); // Remove o diretório após excluir todos os itens
}
$diretorio = "pasta_atualizada";
excluirDiretorio($diretorio);
echo "Diretório '$diretorio' e seu conteúdo excluídos com sucesso!";
?>
Mudando o diretório atual
Para mudar o diretório atual do seu script PHP, você pode usar a função chdir()
. Isso pode ser útil se você precisar executar operações em arquivos que estão em um diretório diferente.
Exemplo:
<?php
$novoDiretorio = "nova_pasta";
if (is_dir($novoDiretorio)) {
chdir($novoDiretorio);
echo "Diretório atual mudado para '$novoDiretorio'.";
} else {
echo "O diretório '$novoDiretorio' não existe.";
}
?>
Outros exemplos práticos
Podemos criar, excluir, mover e renomear pastas sem grandes dificuldades:
//Nome inicial do diretório
$name = "images";
if (!is_dir($name)) { //Se o diretório não existir
mkdir($name); //cria o diretório
echo "Diretório $name criado com sucesso";
} else { Se existir...
rmdir($name); //remove o diretório
echo "Já existe o diretório: $name foi removido";
}
Ler arquivos contidos em um determinado diretório:
//Define o diretório que se deseja escanear. Neste caso "images"
$images = scandir("images");
//Array para armazenar as informações dos arquivos em um JSON
$data = array();
/* Será retornado um array com os nomes dos arquivos encontrados dentro do diretório.
Na posição 0 armazena o diretório local ".", posição 1 o diretório anterior e os
nomes dos arquivos encontrados nas demais posições do array. */
/* Para melhor manipular esse array, utilizamos um foreach para eliminarmos informações
inúteis e trazermos outras informações dos arquivos, por exemplo: */
foreach ($images as $img) {
if(!in_array($img, array(".",".."))) { //Se não tiver . ou .. na posição atual do array
(informação inútil)
$filename = "images" . DIRECTORY_SEPARATOR . $img; //Monta o caminho completo do arquivo
//Obter informações úteis de um arquivo, como extensão, nome etc
$info = pathinfo($filename);
$info["size"] = filesize($filename); //Obtém o tamanho do arquivo
//Obtém a data da última modificação do arquivo
$info["modified"] = date("d/m/Y H:i:s", filemtime($filename));
//Gera uma URL para apontar para o arquivo
$info["url"] = "http://localhost/DIR/".str_replace("\\", "/", $filename);
//Armazena no array $data as informações obtidas de $info
array_push($data, $info);
}
}
echo json_encode($data);//Mostra as informações armazenadas no JSON
Manipular pastas e diretórios com PHP é uma tarefa simples e poderosa, que pode ajudar muito na organização e gestão de arquivos em suas aplicações.
Com as funções que abordamos neste post, você pode facilmente criar, listar, renomear e excluir diretórios, além de mudar o diretório atual do seu script.
Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO e usando orientação a objetos de uma forma fácil de entender.
CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários