Principali funzioni php per lavorare sulle stringhe

PHP mette a disposizione molte funzionalità utili per lavorare sulle stringhe e facilitando il lavoro del programmatore. In questo articolo vedremo come utilizzare alcune funzioni che sono di uso ricorrente nel trattamento delle stringhe.

Le prime funzioni che andremo a vedere riguardano la forma del testo. PHP permette di modificare una stringa (intesa come singola parola o come intera frase) in modo da trasformarla in tutto o in parte in maiuscolo o minuscolo. Le funzioni strtoupper() e strtolower() permettono di modificare la stringa trasformando ciascuna lettere rispettivamente in maiuscolo o in minuscolo. Si potrebbero usare ad esempio per modificare un indirizzo in email tutto in minuscolo oppure un codice fiscale tutto in maiuscolo come di solito vengono rappresentati. Possiamo modificare solo la prima solo la prima lettera di una stringa portandola maiuscola con ucfirst() oppure tutti i primi caratteri di ogni parola con ucwords().

La funzione strlen() ci permette di conoscere il numero di caratteri all’interno di una stringa mentre se volessimo ottenere una sottostringa  potremmo utilizzare la funzione substr() che accetta 3 parametri: la stringa, il punto di partenza e la lunghezza della sottostringa partendo da quel punto.  Il punto di partenza può anche essere negativo, in questo caso si inizia a contare dalla fine della stringa da elaborare.  Un’altra funzione ricorrente è str_replace() che accetta in ingresso 3 parametri:  il primo è la frase (o parola) da sostituire, il secondo la frase in sostituzione e il terzo la stringa da elaborare.

Adesso passiamo a funzioni molto utili quando si lavora in con delle form html. La prima di esse è la funzione nl2br() che trasforma i caratteri di new line (ovvero gli \n, a capo) nei corrispondenti tag <br> di html, che si possono ritrovare dalla compilazione di una textarea. Per eliminare invece qualsiasi tag html e/o javascript  si può utilizzare strip_tags(). La funzione trim(), invece, permette di eliminare gli spazi bianchi all’esterno della stringa (all’inizio e alla fine) ma anche i caratteri di \n e \r. Le varianti di questa funzione sono ltrim() e rtrim() che ripuliscono la stringa allo stesso modo di trim() ma rispettivamente all’inizio e alla fine.

Se non si vuole far interpretare il codice html inserito si possono utilizzare le funzioni htmlspecialchars() e htmlhentities(). La prima trasforma in entità html i caratteri &, “, < e >; la seconda, invece, codifica in entità html tutti i caratteri che hanno una corrispondenza con tale codifica. Vengono spesso usate per motivi di sicurezza quando non si vogliono far inserire all’utente tag html che posso pregiudicare la grafica del sito o per altri scopi di sicurezza. Legata alla sicurezza è anche la funzione addslashes() che immette i caratteri di escape davanti a quei caratteri che possono generare errore utilizzando un dbms. La funzione inversa a addslashes() è stripslashes() che rimuove invece tutti i caratteri di escape inseriti dalla prima funzione. Da tenere in considerazione è la configurazione del php.ini: infatti, se la direttiva magic_quotes_gpc è impostata su on non vi è il bisogno di utilizzare addslashes() in quanto tutti i dati provenienti da form o da cookie verranno automaticamente modificati.

Vediamo infine come trasformare una stringa in un array e viceversa. La funzione explode() accetta in ingresso 2 parametri: un carattere separatore e la stringa. Il risultato della funzione è un array che ha gli elementi della stringa, ogni volta che si incontra un carattere separatore viene impostato un nuovo elemento nell’array. La funzione inversa è la funzione implode() che trasforma un array in una stringa. Anch’essa ha 2 parametri, il carattere separatore e l’array da convertire; il risultato è una stringa composta dalla sequenza di stringhe contenute nell’array separate dal carattere separatore voluto.

Presto posterò gli esempi per ogni funzione illustrata. Naturalmente queste non sono le sole funzioni che PHP mette a disposizione per manipolare le stringhe, ma sono quelle che una volta imparate verranno utilizzate ogni volta ce ne sia il bisogno.

Tags: , , , ,

This entry was posted on martedì, gennaio 5th, 2010 at 15:44 and is filed under Programmazione. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

You must be logged in to post a comment.