RSS Feed Seguiteci su Twitter! Seguiteci su Facebook!
NEWS: Questo Blog e' rimasto inattivo per più di 18 mesi , quindi possono esserci link non funzionanti o altre problematiche dovute alla mancata manutenzione. Cosa vi piace o non in questo BLOG?, scrivete tutte le vostre recensioni in questa area commenti, provvederemo immediatamente a cancellare il Blog o migliorarlo nelle sue aspettative. Grazie.

Lezione18: Le funzioni in PHP: gestire le stringhe


Passiamo ora ad esaminare alcune funzioni che operano sulle stringhe (l'eventuale indicazione di un parametro tra parentesi quadre indica che quel parametro è facoltativo, quindi può non essere indicato nel momento in cui si chiama la funzione):

strlen(stringa)
verifica la lunghezza della stringa, cioè il numero di caratteri che la compongono. Restituisce un numero intero.
trim(stringa)
elimina gli spazi all'inizio e alla fine della stringa. Restituisce la stringa modificata.
ltrim(stringa)
elimina gli spazi all'inizio della stringa. Restituisce la stringa modificata.
rtrim(stringa)
elimina gli spazi alla fine della stringa. Restituisce la stringa modificata.
substr(stringa, intero [, intero])
restituisce una porzione della stringa, in base al secondo parametro (che indica l'inizio della porzione da estrarre), e all'eventuale terzo parametro, che indica quanti caratteri devono essere estratti. Se il terzo parametro non viene indicato, viene restituita tutta la parte finale della stringa a partire dal carattere indicato.

I caratteri vanno contati a partire da zero, per cui se si chiama la funzione con substr(stringa, 4) verranno restituiti tutti i caratteri a partire dal quinto. Si può anche indicare un numero negativo come carattere iniziale: in questo caso, il carattere iniziale della porzione di stringa restituita verrà contato a partire dal fondo.

Ad esempio, con substr(stringa, -5, 3) si otterranno tre caratteri a partire dal quintultimo (da notare che in questo caso il conteggio non inizia da zero, ma da 1: cioè -1 indica l'ultimo carattere, -2 il penultimo e così via).

Se infine si indica un numero negativo come terzo parametro, tale parametro non verrà più utilizzato come numero di caratteri restituiti, ma come numero di caratteri non restituiti a partire dal fondo. Esempio: substr(stringa, 3, -2) restituisce i caratteri dal quarto al terzultimo. La funzione restituisce la porzione di stringa richiesta.
str_replace(stringa, stringa, stringa)
effettua una sostituzione della prima stringa con la seconda all'interno della terza. Ad esempio: str_replace('p', 't', 'pippo') sostituisce le 'p' con le 't' all'interno di 'pippo', e quindi restituisce 'titto'. Restituisce la terza stringa modificata. Esiste anche la funzione str_ireplace(), che è equivalente ma che cerca la prima stringa nella terza senza tener conto della differenza fra maiuscole e minuscole.
strpos(stringa, stringa)
cerca la posizione della seconda stringa all'interno della prima. Ad esempio: strpos('Lorenzo', 're') restituisce 2, ad indicare la terza posizione. Restituisce un intero che rappresenta la posizione a partire da 0 della stringa cercata. Se la seconda stringa non è presente nella prima, restituisce il valore booleano FALSE. La funzione stripos() fa la stessa ricerca senza tenere conto della differenza fra maiuscole e minuscole.
strstr(stringa, stringa)
cerca la seconda stringa all'interno della prima, e restituisce la prima stringa a partire dal punto in cui ha trovato la seconda. strstr('Lorenzo', 're') restituisce 'renzo'. Restituisce una stringa se la ricerca va a buon fine, altrimenti il valore booleano FALSE. La funzione stristr() funziona allo stesso modo ma non tiene conto della differenza fra maiuscole e minuscole.
strtolower(stringa)
converte tutti i caratteri alfabetici nelle corrispondenti lettere minuscole. Restituisce la stringa modificata.
strtoupper(stringa)
converte tutti i caratteri alfabetici nelle corrispondenti lettere maiuscole. Restituisce la stringa modificata.
ucfirst(stringa)
trasforma in maiuscolo il primo carattere della stringa. Restituisce la stringa modificata.
ucwords(stringa)
trasforma in maiuscolo il primo carattere di ogni parola della stringa, intendendo come parola una serie di caratteri che segue uno spazio. Restituisce la stringa modificata.
explode(stringa, stringa [, intero])
trasforma la seconda stringa in un array, usando la prima per separare gli elementi. Il terzo parametro può servire ad indicare il numero massimo di elementi che l'array può contenere (se la suddivisione della stringa portasse ad un numero maggiore, la parte finale della stringa sarà interamente contenuta nell'ultimo elemento).

Ad esempio: explode(' ', 'ciao Mario') restituisce un array di due elementi in cui il primo è 'ciao' e il secondo 'Mario'. Restituisce un array.
Dobbiamo fare un'annotazione relativa a tutte queste funzioni, in particolare quelle che hanno lo scopo di modificare una stringa: la stringa modificata è il risultato della funzione, che dovremo assegnare ad una variabile apposita. Le variabili originariamente passate alla funzione rimangono invariate. Vediamo alcuni esempi sull'uso di queste funzioni:
$a = 'IERI ERA DOMENICA';

/* $b diventa 'ieri era domenica', 
 * ma $a rimane 'IERI ERA DOMENICA' 
 */
$b = strtolower($a); 

strlen('abcd');                      // restituisce 4
trim(' Buongiorno a tutti ');        // restituisce 'Buongiorno a tutti'
substr('Buongiorno a tutti', 4);     // 'giorno a tutti' (inizia dal quinto)
substr('Buongiorno a tutti', 4, 6);  // 'giorno'(6 caratteri a partire dal quinto) 
substr('Buongiorno a tutti', -4);    // 'utti' (ultimi quattro)
substr('Buongiorno a tutti', -4, 2); // 'ut' (2 caratteri a partire dal quartultimo)
substr('Buongiorno a tutti, 4, -2);  // 'giorno a tut' (dal quinto al terzultimo) 


str_replace('Buongiorno', 'Ciao', 'Buongiorno a tutti'); // 'Ciao a tutti'
str_replace('dom', 'x', 'Domani è domenica');            // 'Domani è xenica'
str_ireplace('dom', 'x', 'Domani è domenica');           // 'xani è xenica'

strpos('Domani è domenica', 'm'); // 2 (prima 'm' trovata)
strstr('Domani è domenica', 'm'); // 'mani è domenica' (a partire dalla prima 'm')

strtoupper('Buongiorno a tutti'); // 'BUONGIORNO A TUTTI'
ucfirst('buongiorno a tutti');    // 'Buongiorno a tutti';
ucwords('buongiorno a tutti');    // 'Buongiorno A Tutti';

/* suddivide la stringa in un array, separando un elemento 
 * ogni volta che trova una virgola; avremo quindi un array 
 * di tre elementi: ('Alberto','Mario','Giovanni')
 */
explode(',','Alberto,Mario,Giovanni'); 

/* in questo caso l'array può contenere al massimo due elementi,
 * per cui nel primo elemento andrà 'Alberto' e nel secondo il 
 * resto della stringa: 'Mario,Giovanni' 
 */
explode(',','Alberto,Mario,Giovanni',2); 

0 commenti:

Posta un commento

Proponi un'idea, segnalaci un problema.

Entra a far parte di CS3, pubblica i tuoi articoli.

Scrivi un commento!