/ //

Le funzioni di PHP per gestire le stringhe - GM Multimedia

Vai ai contenuti

Menu principale:

Le funzioni di PHP per gestire le stringhe

Guida PHP



         In alcune delle lezioni precedenti abbiamo utilizzato le stringhe; abbiamo visto ad esempio come assegnarle ad una variabile, come stamparle a schermo, come concatenarle tra di loro o ad altre variabili. PHP mette a disposizione un set completo di funzioni che permettono di manipolare ed eseguire le operazioni su di esse. In questo articolo verranno analizzate quelle utilizzate più frequentemente.

Verificare la lunghezza di una stringa
         La prima funzione descritta è probabilmente anche una delle più utilizzate. Per verificare la lunghezza di una stringa possiamo ricorrere alla funzione strlen() che restituirà il numero dei caratteri che la compongono spazi inclusi:
				$stringa = 'Stringa di esempio';
				echo strlen($stringa); // restituirà 18
         Restituire una porzione di una stringa
         Un’altra operazione molto comune che si effettua con le stringhe consiste nell’estrarne una parte. Immaginiamo, ad esempio, di voler estrarre i vari elementi di una data, possiamo utilizzare la funzione substr() che prende in ingresso 3 parametri:
ParametriDescrizione
$stringUna stringa.
$startCarattere di iniziale, 0 di default. Consente di utilizzare un intero negativo per recuperare la porzione di stringa a partire dalla fine anziché dall’inizio.
$length
Numero di caratteri. Opzionale, se omesso viene restituita tutta la stringa a partire dal carattere iniziale. Consente di utilizzare un intero negativo, in quel caso ometterà length caratteri dalla fine della stringa.
         Analizziamo alcuni esempi a riguardo:
				$data = '01/02/2016';
				$giorno = substr($data, 0, 2); // 01
				$mese   = substr($data, 3, 2); // 02
				$anno   = substr($data, 6);    // 2016
				$giorno = substr($data, -10, 2); // 01
				$mese   = substr($data, -7, 2); // 01
				$anno   = substr($data, -4, 4); // 01

Cercare una porzione di testo all’interno di una stringa
         Spesso si ha la necessità di verificare se una stringa contiene una sottostringa. In questi casi possiamo utilizzare la funzione strpos() che restituisce la posizione della prima occorrenza della stringa ricercata oppure false nel caso non venga trovata alcuna occorrenza. 3parametri in ingresso:
ParametriDescrizione
$haystack
La stringa su cui effettuare la ricerca.
$needle
La porzione di stringa da ricercare.
$offset
Default a 0, indica la posizione da cui iniziare la ricerca
         Anche in questo caso è possibile proporre alcuni esempi:
				$stringa = 'La mia data di nascita è il 07 dicembre 1986';
				echo strpos($stringa, '1986'); // restituirà 41 che è la 
				                                  posizione in cui inizia la stringa 1986
				echo strpos($stringa, '1987'); // restituirà false perché non ci sono 
				                                  occorrenze
         Vediamo come utilizzare la funzione all’interno di un costrutto if:
				$stringa = 'Simone è nato nel 1986';
				if (strpos($stringa, 'Simone') !== false) {
				    echo 'Il tuo nome è Simone';
				}

Invertire una stringa
         Per effettuare l’inversione (reverse) di una stringa possiamo utilizzare la funzione strrev():

				echo strrev("Hello world!"); // stamperà "!dlrow olleH"

Sostituire tutte le occorrenze di una stringa
         Nel caso in cui si voglia sostituire una porzione di stringa all’interno di un’altra stringa possiamo utilizzare la funzione str_replace(), essa prende in ingresso 4 parametri:

ParametriDescrizione
$search
Il valore da cercare.
$replace
Il valore con cui sostituirlo.
$subject
La stringa o le stringhe in cui effettuare la sostituzione.
$count
Opzionale, variabile in cui memorizzare il numero di occorrenze sostituite.
         Alcuni semplici esempi:
				$stringa = 'Il mio nome è Simone';
				echo str_replace('Simone', 'Luca', $stringa); // stamperà 
				                                              //  "Il mio nome è Luca"
				$stringhe = array(
				    'Il mio nome è Simone',
				    'Simone è nato nel 1986'
				);
				str_replace('Simone', 'Luca', $stringhe); // sostituirà tutte le 
				                                          // occorrenze di Simone
				                                          // con Luca all'interno 
				                                          // dell'array
         Come per il parametro $subject, anche i primi due parametri possono accogliere un array anziché una semplice stringa.
         Se $search e $replace sono matrici, allora str_replace() prende i valori da ciascuna matrice e li usa per svolgere la ricerca e la sostituzione in subject. Se $replace ha meno valori di $search, allora si utilizzeranno delle stringhe vuote per completare i rimanenti valori da sostituire. Se $search è una matrice e $replace è una stringa, allora questa stringa di sostituzione sarà utilizzata per ogni valore di $search.
				$stringa = 'Dovresti mangiare frutta, verdura e fibre tutti i giorni';
				$cibi_sani = array('frutta', 'verdura', 'fibre');
				$cibi_grassi = array('pizza', 'gelato', 'hamburger');
				echo str_replace($cibi_sani, $cibi_grassi, $stringa);
				// stamperà "Dovresti mangiare pizza, gelato e hamburger tutti i giorni"

Suddividere una stringa
Spesso capita di dover separare una stringa in più parti in base ad un carattere separatore, ad esempio lo / nella data vista in uno degli esempi precedenti. In questo caso possiamo usare la funzione explode() che prende in ingresso 3 parametri:
ParametriDescrizione
$separator
Carattere separatore.
$string
Stringa da dividere.
$limit
Opzionale, numero massimo di elementi da estrarre
         Un esempio:
				$data = '01/02/2016';
				$elementi = explode('/', $data);
				    // conterrà
				    // Array
				    // (
				    //  [0] => 01
				    //  [1] => 02
				    //  [2] => 2016
				    // )
         La corrispondente funzione con cui possiamo convertire un array in una stringa si chiama implode() che prende in ingresso 2 parametri:
ParametriDescrizione
$glue
Il carattere separatore.
$pieces
L’array da unire.
         Vediamo come trasformare in una data l’array precedente:
				$data = implode('/', $elementi); //conterrà '01/02/2016'

Modificare le maiuscole/minuscole
         PHP mette a disposizione un set di funzioni per modificare le maiuscole/minuscole a seconda dell’esigenza:

ParametriDescrizione
strtoupper()
Per convertire la stringa tutta in maiuscolo.
strtolower()
Per convertire la stringa tutta in minuscolo.
lcfirst()
Per convertire la prima lettera della stringa in minuscolo.
ucfirst()
Per convertire la prima lettera della stringa in maiuscolo.
ucwords()
Per convertire la prima lettera di tutte le parole in maiuscolo.
         Vediamo alcuni esempi per scoprire le funzioni che ci vengono in aiuto:
				$stringa = 'questa stringa contiene tutti caratteri minuscoli';
				echo strtoupper($stringa); // stamperà QUESTA STRINGA CONTIENE 
				                           // TUTTI CARATTERI  MINUSCOLI
				echo ucfirst($stringa); // stamperà Questa stringa contiene 
				                        // tutti caratteri minuscoli
				echo ucwords($stringa); // stamperà Questa Stringa Contiene 
				                        // Tutti Caratteri Minuscoli

Rimuovere spazi all’inizio o alla fine di una stringa
         Spesso quando riceviamo delle stringhe in input abbiamo bisogno di ripulirle da spazi o altri caratteri in eccesso ad inizio o fine stringa. Le funzioni a disposizione sono:

ParametriDescrizione
trim()
Per rimuovere i caratteri sia all’inizio che alla fine.
ltrim()
Per rimuovere i caratteri solo a sinistra.
rtrim()
Per rimuovere i caratteri solo a destra.
         Vediamo qualche esempio:
				$stringa = ' ciao ';
				echo trim($stringa);  // stamperà 'ciao' senza spazi iniziali e finali
				echo ltrim($stringa); // stamperà 'ciao ' senza spazi iniziali
				echo rtrim($stringa); // stamperà ' ciao' senza spazi finali
Visitatori online:
Sei il nostro visitatore n°:
© - Copyright 2015. - Tutti i diritti riservati - G.M. Multimedia
Torna ai contenuti | Torna al menu