Gennaio 10, 2025

glob() in PHP: Cos’è e A Cosa Serve?

Introduzione

Il linguaggio PHP offre diverse funzioni per la manipolazione dei file, e una delle più utili è glob(). Questa funzione permette di cercare file e directory che corrispondono a un pattern specifico. In questo articolo vedremo come utilizzare glob() per semplificare la manipolazione dei file in PHP.

Spiegazione

La funzione glob() in PHP restituisce un array di percorsi di file che corrispondono a un pattern specifico. Questo pattern può includere caratteri jolly come l’asterisco (*) per rappresentare zero o più caratteri, o il punto interrogativo (?) per rappresentare un singolo carattere. Ad esempio, il pattern '*.txt' troverà tutti i file con estensione .txt nella directory specificata.

Quando si utilizza

La funzione glob() è molto utile quando si ha bisogno di lavorare con gruppi di file che seguono una determinata convenzione di denominazione. Può essere utilizzata per elencare file per l’elaborazione, come nel caso di script che eseguono backup, gestione di immagini, o anche per l’elaborazione di log. È particolarmente utile quando si desidera evitare di scrivere loop complessi per l’elencazione dei file.

Esempi

Ecco alcuni esempi di utilizzo di glob() in PHP:

// Esempio 1: Trova tutti i file .txt nella directory corrente
$files = glob("*.txt");
foreach ($files as $file) {
    echo $file . "\n";
}
// Esempio 2: Trova tutti i file con estensione .jpg o .png
$images = glob("*.{jpg,png}", GLOB_BRACE);
foreach ($images as $image) {
    echo $image . "\n";
}
// Esempio 3: Trova tutti i file che iniziano con 'data' e terminano con '.csv'
$dataFiles = glob("data*.csv");
foreach ($dataFiles as $dataFile) {
    echo $dataFile . "\n";
}

Questi esempi mostrano come glob() può essere utilizzato per trovare file in base a pattern semplici o complessi, rendendo la gestione dei file molto più efficiente.

Giorgio

Sono un Web Developer con oltre 20 anni di esperienza nello sviluppo di applicazioni web complesse. Specializzato in PHP, gestione di database relazionali e non relazionali, e integrazione di API, realizzo soluzioni robuste e scalabili per soddisfare esigenze aziendali e tecniche. Mi occupo di architetture server-side, ottimizzazione delle performance e automazione dei processi.