Una delle funzioni native di PHP più utilizzate è sicuramente substr, utilizzata quando abbiamo la necessità che il codice restituisca una parte di una stringa. È una funzione molto versatile, che permette con semplicità e velocità di ottenere risultati molto precisi.

Ha due parametri obbligatori: il primo è la stringa di testo dalla quale vogliamo estrapolare una sottostringa, il secondo è il carattere di partenza, dal quale la funzione inizierà il suo lavoro. In più, è possibile inserire un terzo parametro, opzionale, che indica il numero di caratteri di cui dovrà essere composta la sottostringa che la funzione restituirà.

Questa è, quindi, la sintassi della funzione:

substr(stringa, carattere di inizio, lunghezza);

L’esempio classico, contenente solo i parametri obbligatori, è il seguente:

substr(“Buongiorno”, 4);

Che restituirà come risultato la stringa “giorno”. Questo perché la stringa è considerata come se fosse un array, ovvero il primo carattere corrisponde alla posizione 0. Vediamo questi altri esempi che chiariscono bene il funzionamento della funzione substr:

substr(“Buongiorno”, 0); // L'output sarà “Buongiorno”

substr(“Buongiorno”, 1); // L'output sarà “uongiorno”

substr(“Buongiorno”, 2); // L'output sarà “ongiorno”

substr(“Buongiorno”, 3); // L'output sarà “ngiorno”

substr(“Buongiorno”, 4); // L'output sarà “giorno”

substr(“Buongiorno”, 5); // L'output sarà “iorno”

substr(“Buongiorno”, 6); // L'output sarà “orno”

substr(“Buongiorno”, 7); // L'output sarà “rno”

substr(“Buongiorno”, 8); // L'output sarà “no”

substr(“Buongiorno”, 9); // L'output sarà “o”

L’utilizzo del terzo parametro, ossia la lunghezza della stringa che la funzione dovrà restituire, è come detto, opzionale, quindi non necessario al corretto funzionamento della funzione stessa, ma è utile nel caso in cui ci serva solo una parte ben definita della stringa iniziale. Volendo utilizzare l’esempio già visto precedentemente, e immaginando di aver bisogno della sottostringa “gio”, questo è il codice di cui avremo bisogno:

substr(“Buongiorno”, 4, 3);

La versatilità della funzione substr ci permette di utilizzare come parametri anche i numeri negativi. In questo caso, il conteggio dei caratteri viene fatto da destra a sinistra, e non da sinistra a destra, come normalmente accade. Ecco come utilizzarli:

substr(“Buongiorno”, -1); // L'output sarà “o”

substr(“Buongiorno”, -2); // L'output sarà “no”

substr(“Buongiorno”, -3); // L'output sarà “rno”

 

substr(“Buongiorno”, -8); // L'output sarà “ongiorno”

substr(“Buongiorno”, -9); // L'output sarà “uongiorno”

substr(“Buongiorno”, -10); // L'output sarà “Buongiorno”

È anche possibile usare anche parametri negativi e positivi contemporaneamente:

substr(“Buongiorno”, -8, 2); // L'output sarà “on”

substr(“Buongiorno”, -8, 3); // L'output sarà “ong”

substr(“Buongiorno”, -8, 4); // L'output sarà “ong”

Ecco invece qualche utilizzo dei numeri negativi anche come secondo parametro:

substr(“Buongiorno”, -8, -1); // L'output sarà “ongiorn”

substr(“Buongiorno”, -8, -2); // L'output sarà “ongior”

substr(“Buongiorno”, -8, -3); // L'output sarà “ongio”

Come avete potuto capire, la varietà di combinazioni è davvero molto alta e la facilità di utilizzo di substr la rende una delle funzioni PHP più utilizzate in assoluto.

 

LaraMind è una scuola di PHP e Laravel, dai un’occhiata ai nostri corsi in aula, prendi parte alle nostre lezioni, inizia da qui per una conoscenza approfondita di PHP e Laravel!