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!