Funzione glob

La funzione glob cerca file e directory corrispondenti a un pattern specificato. Il primo parametro accetta una stringa con il pattern di ricerca. Il secondo parametro opzionale imposta i flag per modificare il comportamento della funzione.

Sintassi

phpglob(pattern, [flags]);

Flag

Flag Descrizione
GLOB_MARK Aggiunge uno slash / a ogni directory restituita.
GLOB_NOSORT Restituisce i file nell'ordine in cui si trovano nella directory (senza ordinamento).
GLOB_NOCHECK Restituisce il pattern di ricerca se non viene trovata alcuna corrispondenza.
GLOB_NOESCAPE I backslash non escapano i metacaratteri.
GLOB_BRACE Espande {a,b,c} per cercare con più pattern.
GLOB_ONLYDIR Restituisce solo le directory corrispondenti al pattern.
GLOB_ERR Si interrompe in caso di errori di lettura (ad esempio, permessi negati).

Esempio

Troviamo tutti i file con estensione .txt nella directory corrente:

php<?php
  $res = glob('*.txt');
  print_r($res);
?>

Risultato dell'esecuzione del codice:

php['file1.txt', 'file2.txt', 'notes.txt']

Esempio

Troviamo tutti i file che iniziano con 'test' con qualsiasi estensione:

php<?php
  $res = glob('test*');
  print_r($res);
?>

Risultato dell'esecuzione del codice:

php['test.php', 'test.txt', 'test_image.jpg']

Esempio

Utilizzo del flag GLOB_BRACE per cercare con più pattern:

php<?php
  $res = glob('*.{php,txt}', GLOB_BRACE);
  print_r($res);
?>

Risultato dell'esecuzione del codice:

php['index.php', 'config.php', 'readme.txt']

Esempio

Ricerca di file nelle sottodirectory utilizzando il flag GLOB_RECURSE:

php<?php
  $res = glob('**/*.php', GLOB_BRACE|GLOB_RECURSE);
  print_r($res);
?>

Risultato dell'esecuzione del codice:

php['index.php', 'lib/utils.php', 'admin/index.php']

Vedi anche

  • la funzione scandir,
    che legge il contenuto di una directory
  • la funzione file_exists,
    che verifica l'esistenza di un file
  • la funzione is_file,
    che verifica un file