PHP: funzione eliminaNumeri()

Loading

Torna alla pagina delle funzioni

Questa funzione prende in input una stringa e elimina gli eventuali numeri contenuti in essa.

Funzione

function eliminaNumeri($str) {
    // Sostituisce ogni cifra (0-9) con una stringa vuota
    return preg_replace('/[0-9]+/', '', $str);
}

// Esempio d'uso:
echo eliminaNumeri("Cia0 c0me sta1?"); // Output: "Cia cme sta?"

Spiegazione codice

La funzione che utilizza preg_replace è uno strumento potente basato sulle espressioni regolari (regex). Ecco una spiegazione dettagliata di come funziona:

La funzione preg_replace

Questa è una funzione integrata in PHP dedicata alla ricerca e sostituzione di pattern all’interno di stringhe.

Analisi del pattern /[0-9]+/

Il cuore della soluzione risiede nell’espressione regolare passata come primo argomento:

  • //: I due slash delimitano l’inizio e la fine dell’espressione regolare.
  • [0-9]: Questa parte definisce una “classe di caratteri”. Indica al motore di ricerca di cercare qualsiasi carattere compreso nell’intervallo tra lo 0 e il 9 (quindi, tutte le cifre decimali).
  • +: Questo quantificatore significa “uno o più”. In pratica, dice al programma di raggruppare le cifre consecutive e trattarle come un unico blocco da eliminare.

Come opera la sostituzione

  • Secondo argomento (''): Qui specifichiamo con cosa sostituire ciò che abbiamo trovato. Usando una stringa vuota (''), stiamo dicendo a PHP di “cancellare” fisicamente le occorrenze trovate dal pattern.
  • Terzo argomento ($str): È la variabile di input che contiene il testo originale su cui vogliamo operare.

In sintesi, il motore di PHP analizza la stringa, identifica ogni sequenza di numeri e la sostituisce con il “nulla”, restituendo infine la stringa ripulita. È un approccio molto più snello e performante rispetto a un ciclo for manuale, poiché l’intera operazione di scansione viene eseguita a basso livello dal motore regex di PHP.