Stringhe - Tipi di dati in PHP
In PHP, le stringhe sono sequenze di byte e sono utilizzate per rappresentare del testo.
Una stringa è una sequenza di caratteri racchiusa all'interno degli apici, che possono essere sia singoli che doppi; ci sono alcune differenze tra l'utilizzo di apici singoli (') e apici doppi (""), vediamoli:
- Stringhe con apici singoli: sono considerate più veloci da elaborare, perché PHP non deve fare alcuna elaborazione all'interno della stringa
- Stringhe con gli apici doppi: consentono di utilizzare i caratteri di escape, come ad esempio il carattere di nuova riga (\n) o il carattere di tabulazione (\t), e di inserire delle variabili all'interno della stringa usando il seguito di sintassi
{$variabile}
Sintassi delle stringhe in php:
<?php
//differenza tra apici singoli e apici doppi
$nome = 'Donato';
echo "Ciao da $nome"; // output : Ciao da Donato
echo 'Ciao da $nome'; // output : Ciao da $nome
echo 'Ciao da ' . $nome ; // output : Ciao da Donato
?>
Indice
Caratteri Escape nelle stringhe
I caratteri di escape sono caratteri speciali che vengono interpretati in modo speciale da PHP all'interno delle stringhe. Ad esempio, il carattere di nuova riga (\n) viene interpretato come una nuova riga, mentre il carattere di tabulazione (\t) viene interpretato come una tabulazione.
// escape per apici : backslash \
echo 'L\'arte dell\'ape Maia è "rubare" il nettare dalle altre api';
echo "L'arte dell'ape Maia è \"rubare\" il nettare dalle altre api";
// escape per "a capo" con apici doppi
echo "L'arte dell'ape Maia \n è rubare il nettare delle altre api";
Heredoc e Newdoc
Heredoc e Nowdoc sono due tipi di stringa in PHP che ti consentono di definire stringhe su più righe senza dover utilizzare il caratteri di escape.
Heredoc
Heredoc è una stringa che inizia con il token di apertura <<<
seguito da un identificatore, che deve essere una parola chiave non riservata che useremo sia per l'apertura che per la chiusura. Con Heredoc inoltre viene effettuato il parsing delle variabili Ad esempio:
// heredoc
$numero = 100;
$stringaHeredoc = <<<STRINGA
il numero $numero
è un numero "pari"
ed è composto da 'tre cifre'
STRINGA;
echo $stringaHeredoc
/* output :
il numero 100
è un numero "pari"
ed è composto da 'tre cifre'
*/
Nowdoc
Nowdoc è simile a Heredoc, ma viene interpretata come una stringa letterale, cioè le variabili all'interno della stringa non vengono sostituite con i loro valori, ma vengono trattate come testo. Nowdoc inizia con il token di apertura <<<'
seguito da un identificatore e termina con l'identificatore seguito dal token di chiusura ';
.
// nowdoc
$numero = 100;
$stringaHeredoc = <<<'STRINGA'
il numero $numero
è un numero "pari"
ed è composto da 'tre cifre'
'STRINGA';
echo $stringaHeredoc
/* output :
il numero $numero2
è un numero "pari"
ed è composto da 'tre cifre'
*/
Funzioni sulle stringhe
Vediamo alcune funzioni native di PHP:
Echo e Print
Echo e Print non sono funzioni ma sono costrutti ed entrambi mandano in output quello che vogliamo mandare in output, la differenza principale è:
- print: con print non possiamo mandare in output più valori;
- echo: con echo possiamo mandare in input più valori;
// print
print 10, "Donato"; //output : Parse error: syntax error, unexpected token ","
// echo
echo 10, "Donato"; //output : 10Donato
Le funzioni Implode ed Explode
implode
e explode
sono due funzioni in PHP che ti consentono di lavorare con array di stringhe.
implode()
implode
prende come argomenti un array di stringhe e un carattere di separazione, e restituisce una stringa formata dalle stringhe dell'array separate dal carattere di separazione. Ad esempio:
// implode: Creiamo una stringa partendo da un Array
$array = ['Ciao','Sono','Donato'];
$crea_stringa = implode(" ",$array);
echo($crea_stringa); // output: Ciao Sono Donato
explode()
explode
, invece, prende come argomenti una stringa e un carattere di separazione, e restituisce un array di stringhe ottenuto dividendo la stringa in base al carattere di separazione. Ad esempio:
// explode : crea un array da una stringa, scegliendo un separatore
$stringa_testo = "Sono Donato";
$crea_array = explode(" ",$stringa_testo);
var_dump($crea_array); /* output:
array(2) {
[0]=>
string(4) "Sono"
[1]=>
string(6) "Donato"
}
*/
La funzione Addslashes()
La funzione addslashes
in PHP è utilizzata per aggiungere gli slash di escape ad alcuni caratteri speciali in una stringa, in modo che possano essere utilizzati all'interno di una query SQL o in altri contesti in cui potrebbero essere interpretati in modo errato. Viene spesso utilizzata prima di inserire un valore all'interno di un database per evitare che il database subisca un attacco SQL injection (non è il modo più sicuro)
//addsleshes
$user = "Samanta D'Amelio";
echo addslashes($user); //output : Samanta D\'Amelio
La funzione Str_contains() - PHP8
Con la funzione str_contains() è possibile verificare se una stringa contiene un'altra stringa. Esso ritorna un valore booleano.
Ad esempio se vogliamo vedere se all'interno della stringa c'è la scritta Zio Paperone, possiamo usare str_contains(), come nell'esempio sottostante
// str_contains (PHP8)
$stringa_lorem = "vivamus arcu felis bibendum ut Zio Paperone et egestas quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci nulla pellentesque";
var_dump(str_contains($stringa_lorem, "Zio Paperone")); // output: (true)
La funzione str_starts_with() - PHP8
Con la funzione str_starts_with() è possibile verificare se all'inizio di una stringa ci sono i caratteri che vogliamo cercare. Esso ritorna un valore booleano.
Ad esempio se vogliamo vedere se all'inizio della stringa c'è la scritta Mario, possiamo usare str_contains(), come nell'esempio sottostante
// str_starts_with (PHP8)
$stringa_example1 = "Mariottide è un forsennato";
var_dump(str_starts_with($stringa_example1, "Mario")); // output: (true)
La funzione str_ends_with() - PHP8
Con la funzione str_ends_with() è possibile verificare se alla fine di una stringa ci sono i caratteri che vogliamo cercare. Esso ritorna un valore booleano.
Ad esempio se vogliamo vedere se all'interno della stringa c'è la scritta Zio Paperone, possiamo usare str_contains(), come nell'esempio sottostante
// str_ends_with (PHP8)
$stringa_example2 = "a caval Donato non si guarda in bocca";
var_dump(str_ends_with($stringa_example2, "bocca")); // output: (true)
Le funzioni trim, rtrim, ltrim
Le funzioni trim
, rtrim
e ltrim
in PHP sono utilizzate per rimuovere gli spazi vuoti (o altri caratteri specificati) dall'inizio o dalla fine di una stringa.
- La funzione
trim
rimuove gli spazi vuoti (o altri caratteri specificati) sia dall'inizio che dalla fine della stringa. - La funzione
ltrim
rimuove gli spazi vuoti (o altri caratteri specificati) solo dall'inizio della stringa. - La funzione
rtrim
rimuove gli spazi vuoti (o altri caratteri specificati) solo dalla fine della stringa.
Ecco alcuni esempi di utilizzo delle tre funzioni:
// trim, ltrim, rtrim
$path = '/localhost/users/';
// trim : rimozione inizio e fine
echo trim($path,'/'); // output : localhost/users
// ltrim : rimozione solo all'inizio
echo ltrim($path,'/'); // output : localhost/users/
// rtrim : rimozione solo alla fine
echo rtrim($path, '/'); // output : /localhost/users
Le funzioni lcfirst, ucfirst ed ucwords
Le funzioni lcfirst
, ucfirst
e ucwords
in PHP sono utilizzate per modificare il case (maiuscole o minuscole) delle singole lettere o delle parole all'interno di una stringa.
- La funzione
lcfirst
converte il primo carattere di una stringa in minuscolo - La funzione
ucfirst
converte il primo carattere di una stringa in maiuscolo - La funzione
ucwords
converte il primo carattere di ogni parola di una stringa in maiuscolo.
Ecco alcuni esempi di utilizzo delle tre funzioni:
// lcfirst, ucfirst, ucwords
$stringa_example3 = 'Ciao mondo';
// lcfirst: Primo carattere minuscolo
echo lcfirst($stringa_example3); // output : ciao mondo
// ucfirst: Primo carattere maiuscolo
echo ucfirst($stringa_example3); // output : Ciao mondo
// ucwords: Primo carattere di ogni parola maiuscolo
echo ucwords($stringa_example3); // output : Ciao Mondo
Le funzioni strtolower, strtoupper
Le funzioni strtolower
e strtoupper
in PHP sono utilizzate per convertire una stringa in maiuscole o minuscole.
- La funzione
strtolower
converte tutti i caratteri di una stringa in minuscolo; - La funzione
strtoupper
converte tutti i caratteri di una stringa in maiuscolo;
Ecco alcuni esempi di utilizzo delle due funzioni:
// strtolower , strtoupper
$stringa_example4 = 'questa è una stringa di testo';
// strtolower: caratteri in minuscolo
echo strtolower($stringa_example3); // output: questa è una stringa di testo
// strtoupper: caratteri in maiuscolo
echo strtoupper($stringa_example3); // output: QUESTA è UNA STRINGA DI TESTO
echo mb_strtoupper($stringa_example3); // output: QUESTA È UNA STRINGA DI T
ESTO