Ce face glob
glob caută fișiere după un tipar cu metacaractere: * înseamnă orice text, ? un singur caracter, iar [abc] unul dintre caracterele din paranteze. Rezultatul conține căi complete, gata de folosit, sortate alfabetic.
Opțiuni utile: GLOB_ONLYDIR (doar directoare) și GLOB_BRACE, care permite {jpg,png}. GLOB_BRACE nu există pe unele sisteme, de exemplu Alpine Linux.
Parametri
| Parametru | Descriere |
|---|---|
$pattern |
Tiparul căutat, de exemplu "uploads/*.pdf". |
$flags |
Opțional. Constante GLOB_*, unite cu |. |
Ce returnează
Un tablou cu căile găsite (gol dacă nu se potrivește nimic) sau false la eroare.
Exemple
Exemplul 1: Toate imaginile JPG
<?php
mkdir("galerie");
foreach (["plaja.jpg", "munte.jpg", "harta.png", "note.txt"] as $nume) {
touch("galerie/$nume");
}
print_r(glob("galerie/*.jpg"));
Rezultat
Array
(
[0] => galerie/munte.jpg
[1] => galerie/plaja.jpg
)
Exemplul 2: Mai multe extensii și doar directoare
<?php
mkdir("site/teme", 0777, true);
mkdir("site/pluginuri");
touch("site/logo.png");
touch("site/fundal.jpg");
print_r(glob("site/*.{jpg,png}", GLOB_BRACE));
print_r(glob("site/*", GLOB_ONLYDIR));
Rezultat
Array
(
[0] => site/fundal.jpg
[1] => site/logo.png
)
Array
(
[0] => site/pluginuri
[1] => site/teme
)
Greșeli frecvente
- Pe Linux,
*.jpgnu găseștePOZA.JPG: tiparul face diferența între litere mari și mici. Folosește*.{jpg,JPG}cuGLOB_BRACEsau*.[jJ][pP][gG]. - Te aștepți să găsești și fișierele ascunse (cele care încep cu punct, ca
.htaccess).*nu le include.