Resumo : neste tutorial, você aprenderá como usar a glob()
função PHP para obter a lista de arquivos e diretórios que correspondem a um padrão.
Introdução à função PHP glob()
A glob()
função encontra nomes de caminhos que correspondem a um padrão.
Aqui está a sintaxe da glob()
função:
glob ( string $pattern , int $flags = 0 ) : array|false
Linguagem de código: PHP ( php )
A glob()
função leva dois parâmetros:
Este $pattern
é o padrão a combinar. Para construir um padrão, você usa os seguintes caracteres especiais:
- Use
*
para corresponder zero ou mais caracteres - Use
-
para corresponder exatamente a um caractere - Use
[]
para corresponder a um caractere de um grupo de caracteres listados no arquivo[]
. Para negar a correspondência, você usa o!
caractere como o primeiro caractere do grupo. - Use
\
para escapar dos seguintes caracteres, exceto quando oGLOB_NOESCAPE
sinalizador estiver definido.
É $flag
uma ou mais opções que determinam o comportamento da glob()
função.
Por exemplo, se $flag
for GLOB_MARK
, a glob()
função adiciona uma barra ( /
) ou uma barra invertida ( \
) a cada diretório correspondente. Para obter uma lista completa de sinalizadores válidos, verifique a glob()
documentação da função .
Para combinar sinalizadores, você usa o | personagem. Por exemplo: GLOB_ONLYDIR|GLOB_NOSORT
.
A glob()
função retorna uma matriz que contém os arquivos/diretórios correspondentes.
Se nenhum arquivo ou diretório corresponder ao padrão, a glob()
função retornará um array vazio.
Se ocorrer um erro, a glob()
função retornará um arquivo false
.
glob()
Exemplos de funções PHP
Vejamos alguns exemplos de uso da glob()
função PHP.
1) Usando a função PHP glob() para listar todos os arquivos em um diretório
O exemplo a seguir usa a glob()
função para listar todos os arquivos *.php no diretório src:
<?php
$path = 'src/*.php';
$filenames = glob($path);
foreach ($filenames as $filename) {
echo $filename . '<br>';
}
Linguagem de código: PHP ( php )
Neste exemplo, o padrão *.php
corresponde a qualquer arquivo cuja extensão seja php
.
2) Usando a função PHP glob() para calcular e obter o tamanho total dos arquivos
Para obter o tamanho total dos arquivos em um diretório que corresponde a um padrão, siga estas etapas:
- Primeiro, encontre os arquivos correspondentes usando a
glob()
função. - Segundo, obtenha o tamanho de cada arquivo passando o resultado da
glob()
função para a função array_map(). - Terceiro, obtenha o tamanho total passando o resultado de array_map() para a função array_sum().
O código a seguir ilustra como usar as glob()
funções , array_map() e array_sum() para encontrar o tamanho total dos arquivos *.php no diretório src:
echo array_sum(array_map('filesize', glob('./src/*.php')));
Linguagem de código: PHP ( php )
3) Usando a glob()
função PHP para incluir os dotfiles
O glob(‘*’) ignora arquivos ocultos por padrão. Isso significa que ele não retorna o arquivo cujo nome começa com um ponto, por exemplo, ( .gitignore
), que são conhecidos como dotfiles.
Se quiser combinar os dotfiles, você pode usar o {.[!.],}*
como padrão com o GLOB_BRACE
sinalizador. Este padrão exclui os diretórios .
e ..
:
$filenames = glob('{.[!.],}*', GLOB_BRACE);
foreach ($filenames as $filename) {
echo $filename . '<br>';
}
Linguagem de código: PHP ( php )
Resumo
- Use a função PHP
glob()
para obter uma lista de arquivos e diretórios que correspondem a um padrão.