PHP ha una vasta scelta di funzioni integrate per la gestione delle stringhe che permettono di manipolarle facilmente in quasi ogni modo possibile. Tuttavia, imparare tutte queste funzioni, ricordando quello che fanno e quando potrebbero tornare utili, può essere un po scoraggiante, soprattutto per i nuovi sviluppatori.
Non c’è modo che io possa coprire tutte le funzioni per le stringhe in un post; inoltre, questo è quello che c’è nel manuale di PHP! Ma ciò che voglio scrivere è su cosa si dovrebbe sapere per lavorare con alcune delle funzioni più comunemente utilizzate per manipolazione le stringhe.
⤽
Il Case
Sostituzioni⤽
PHP offre diverse funzioni che consentono di manipolare il case dei caratteri all’interno di una stringa, senza dover elaborare la stringa carattere per carattere. Perché importa di questo? Beh, forse si vuole garantire che un determinato testo sia tutto in maiuscolo, come acronimi, titoli, per enfatizzare o semplicemente per controllare che i nomi siano capitalizzati in modo corretto. O forse volete solo per confrontare due stringhe e si vuole garantire che le lettere che si sta’ confrontando siano dello stesso set di caratteri. Le funzioni di manipolazione dei case sono abbastanza facili da usare, basta passare la stringa come parametro alla funzione e il valore di ritorno sarà una stringa con caratteri maiuscoli o viceversa.
Se si vuole garantire che tutte le lettere in una stringa specifica siano in maiuscole, è possibile utilizzare la funzione
È forse ovvio, ma vale ancora la pena notare che i numeri e altri caratteri non alfabetici, non saranno convertiti.
Come si può intuire, la funzione
Ci possono essere altre volte quando si vuole garantire la visualizzazione di certe parole, come ad esempio nomi o titoli, solo con la prima lettera di ogni parola in maiuscolo. Per questo si può utilizzare la funzione
È anche possibile manipolare il case nella sola prima lettera di una stringa utilizzando le funzioni
Se si vuole garantire che tutte le lettere in una stringa specifica siano in maiuscole, è possibile utilizzare la funzione
strtoupper()
come segue:<?php $stringa = "Burattino su una stringa."; $senso = strtoupper($stringa); echo $senso; // Visualizza: BURATTINO SU UNA STRINGA. ?>
Come si può intuire, la funzione
strtolower()
fa esattamente l’opposto della funzione strtoupper()
, cioè converte la stringa con tutte le lettere minuscole.<?php $stringa = "BURATTINO SU UNA STRINGA."; $senso = strtolower($stringa); echo $senso; // Visualizza: burattino su una stringa. ?>
ucwords()
.<?php $stringa = "un nodo"; $senso = ucwords($stringa); echo $senso; // Visualizza: Un Nodo ?>
lcfirst()
e ucfirst()
. Se si desidera che la prima lettera sia minuscola, utilizzare la funzione lcfirst()
. Se si desidera che la prima lettera sia maiuscola, utilizzare la funzione ucfirst()
. La funzione ucfirst()
è probabilmente la più utile in quanto è possibile utilizzarla per garantire che una certa frase inizi sempre con una lettera maiuscola.<?php $stringa = "quanto è lungo un pezzo di stringa?"; $senso = ucfirst($stringa); echo $senso; // Visualizza: Quanto è lungo un pezzo di stringa? ?>
⤽
Scambi di parole
Ritagli⤽
Diamo un’occhiata alla sostituzione di un pezzo di stringa con qualcos’altro. Per il quale è possibile utilizzare la funzione
È inoltre possibile utilizzare gli array per le campionature con la funzione
Una trim velocestr_replace()
. Ciò è ideale per situazioni in cui si vogliono solo scambiare istanze di parole specifiche o un insieme di caratteri di una stringa e sostituirle con qualcos’altro:<?php $mia_stringa = "Il gatto era nero"; $nuova_stringa = str_replace("nero", "bianco", $mia_stringa); echo $nuova_stringa; // Visualizza: Il gatto era bianco ?>
str_replace()
, se si desidera sostituire più valori.<?php $america = array("rossa", "bianca", "blu"); $germania = array("nera", "rossa", "gialla"); $mia_stringa = "La bandiera era rossa bianca e blu."; $nuova_stringa = str_replace($america, $germania, $mia_stringa); echo $nuova_stringa; // Visualizza: La bandiera era nera rossa e gialla. ?>
str_replace()
è case-sensitive, ma se non ci si vuole preoccupare, magari perché potrebberoesserci dei caratteri imprevisti, è possibile utilizzare la funzione sorella ch’è case-insensitive, str_ireplace()
.⤽
A volte si ha bisogno di una stringa pulita a suoi margini. Possono esserci spazi o altri caratteri, all’inizio o alla fine della stringa, candidati alla rimozione. Lo spazio può essere un carattere di spazio reale, ma possono anche esserci delle tabulazioni o ritorno a capo, ecc. Un esempio di quando potrebbe essere necessario fare qualcosa di simile è quando si lavora con l’input dell’utente e si vuole ripulire i dati prima di iniziare la sua elaborazione. La funzione
C’è da stare attenti quando si lavora con questi caratteri aggiuntivi visto che
Anche se
Ci sono anche le funzioni
trim()
in PHP ci permette di fare proprio questo, è possibile passare la stringa come parametro e tutti gli spazi vuoti all’inizio e alla fine della stringa, verranno rimossi.<?php $stringa = " Un pezzo di stringa? "; var_dump($stringa); // Visualizza: string(24) " Un pezzo di stringa? " $trimmata = trim($stringa); var_dump($trimmata); // Visualizza: string(20) "Un pezzo di stringa?" ?>
trim()
è anche multi-funzionale nel senso che, oltre alla stringa si può anche passare un insieme di caratteri per consentire di eliminare le corrispondenze all’inizio e/o alla fine della stringa.<?php $stringa = "I tre moschettieri!"; $trimmata = trim($stringa, "I!"); var_dump($trimmata); // Visualizza: string(17) " tre moschettieri" ?>
trim()
rimuovere lo spazio vuoto solo se si specifica come uno dei caratteri che si desidera rimuovere.<?php $stringa = "I tre moschettieri!"; $trimmata = trim($stringa, "I !"); var_dump($trimmata); // Visualizza: string(16) "tre moschettieri" ?>
trim()
rimuove solo i caratteri all’inizio e alla fine di una stringa, nell’esempio di prima ha rimosso sia “I” che lo spazio perché quando “I” viene rimosso lo spazio diventa il nuovo inizio della stringa, e così viene anche rimosso.Ci sono anche le funzioni
ltrim()
e rtrim()
in PHP che sono simili alla funzione trim()
ma solo rimuovono gli spazi vuoti (o altri caratteri specificati) dalla sinistra e dalla destra della stringa rispettivamente.⤽
Quanto è lunga la stringa?
Riassunto⤽
Molto spesso quando si lavora con le stringhe, vorrete sapere quanto è lunga. Per esempio, quando si tratta di un modulo (form), si può avere un campo in cui si desidera che gli utenti non possano andare oltre un certo numero di caratteri. Per contare il numero di caratteri di una stringa, è possibile utilizzare la funzione
Tagliare stringhe a misurastrlen()
.<?php $stringa = "Quanto è lunga la stringa?"; $misura = strlen($stringa); echo $misura; // Visualizza: 26 ?>
⤽
Un’altra situazione comune è quella di trovare un testo specifico all’interno di una determinata stringa e “tagliarla fuori” in modo da poter fare qualcos’altro con esso. Per tagliare una stringa è necessario un buon paio di forbici, e in PHP la forbice è la funzione
Per utilizzare la funzione
Quando si utilizza un numero negativo,
Un terzo parametro opzionale in
Se avete bisogno di trovare solo la posizione di un particolare pezzo di testo all’interno di una stringa e non altro, è possibile utilizzare la
substr()
.Per utilizzare la funzione
substr()
, si passa la stringa che si desidera elaborare come parametro insieme ad un numero intero positivo o negativo. Il numero determina dove potrete iniziare a tagliare la stringa; con lo zero si inizia dal primo carattere della stringa (ricordate che quando si contano le posizioni in una stringa, il primo carattere a sinistra inizia con la posizione 0 e non la posizione 1).<?php $stringa = "Come tagliare una stringa a misura"; $ritaglio = substr($stringa, 14); echo $ritaglio; // Visualizza: una stringa a misura ?>
substr()
inizierà a contare a ritroso a partire dalla fine della stringa.<?php $stringa = "Come tagliare una stringa a misura"; $ritaglio = substr($stringa, -8); echo $ritaglio; // Visualizza: a misura ?>
substr()
è la lunghezza: un valore intero che consente di specificare il numero di caratteri che si desidera estrarre dalla stringa.<?php $stringa = "Come tagliare una stringa a misura"; $ritaglio = substr($stringa, 18, 7); echo $ritaglio; // Visualizza: stringa ?>
strpos()
che restituisce la posizione della selezione dall’inizio della stringa. Un trucco utile, soprattutto quando non si conosce la posizione di partenza del testo da tagliare in una stringa, è quella di combinare le due funzioni. Anziché specificare una posizione di partenza come un intero, è possibile cercare tale posizione da una parte specifica del testo.<?php $stringa = "Come tagliare una stringa a misura"; $ritaglio = substr($stringa, strpos($stringa, "stringa"), 7); echo $ritaglio; // Visualizza: stringa ?>
⤽
In questo post c’è solo un assaggio di alcune delle cose che si possono fare con le stringhe in PHP. Ho davvero a malapena scalfito la punta di un iceberg! Il posto migliore per sapere di più su tutte le diverse funzioni per le stringhe è quello di leggere la pagina String Functions del manuale PHP.
Ancora nessun commento