Le stringhe

Gli argomenti di questa pagina

  • Definizione di una stringa
  • Uso del carattere di backslash ( \ )
  • Operazioni con le stringhe: rimozione, concatenazione o aggiunta caratteri
  • Ottenere la lunghezza di una stringa
  • Suddividere una stringa in un Array
  • Dividere una stringa con la funzione explode()
  • Dividere una stringa con la funzione preg_split()
  • Creare un Array da una lista di variabili con la funzione compact()
  • Creare una stringa da un Array con la funzione implode()

Definizione di una stringa

Una stringa è una sequenza di caratteri. In PHP questa sequenza di caratteri viene iniziata e conclusa da un doppio apice ( " ) o da un apice semplice ( ' ). La stringa può essere assegnata ad una variabile (una sequenza di caratteri che inizia col imbolo " $ ") o può essere stampata direttamente tramite la funzione echo.

1
2
3
4
5
<?php
$stringa 
"Questa è la prima stringa ed è delimitata da una coppia di doppi apici";
$stringa 'Questa è la seconda stringa ed è delimitata da una coppia di apici semplici';
echo 
"Questa stringa verrà stampata immediatamente a video";
?>

Uso degli apici. Come è visibile nel frammento di codice qui sotto, le prime due righe sono corrette, mentre le altre due sono sbagliate.
Una stringa delimitata da una coppia di doppi apici può contenere gli apici semplici, mentre una stringa delimitata da una coppia di apici semplici può contenere i doppi apici.
Apici dello stesso dipo di quelli che delimitano una stringa non possono essere contenuti nella stringa, come è visibile nelle ultime due righe di codice.
Se questo è necessario occorre ricorrere al carattere di backslash come indicato nel paragrafo seguente.

1
2
3
4
5
6
7
<?php
$stringa 
"Il libro è intitolato 'Pinocchio' il film invece no";
$stringa 'Il libro è intitolato "Pinocchio" il film invece no';
//    ============================================================
$stringa "Il libro è intitolato "Pinocchio" il film invece no";
$stringa 'Il libro è intitolato 'Pinocchio' il film invece no';
?>

Uso del carattere di backslash ( \ )

Come si è visto sopra, in certi casi sembra impossibile mostrare alcuni caratteri, anzi a volte lo script viene improvvisamente interrotto con un messaggio di errore:
Parse error: syntax error, unexpected T_STRING in....................
Se all'interno della stringa vogliamo inserire i doppi apici ( " ), il carattere di backslash ( \ ), o il simbolo del dollaro ( $ ) dobbiamo effettuarne il cosiddetto escape, cioè dobbiamo far precedere tali caratteri dal carattere ' \ ': \", \\, \$. Questo carattere è già compreso in alcune particolari sequenze quali new line: \n, carriage return: \r, tab: \t.

1
2
3
4
5
6
7
8
<?php
echo "Via dell'olio<br />\n";
echo 
'Via dell\'olio<br />';
echo 
"Vado a \"casa\" e torno<br />\n";
$stringa "test per stringa ";
echo 
"Scrivo $stringa per provare<br />\n";
echo 
"Scrivo \$stringa per provare<br />\n";
?>
Via dell'olio
Via dell'olio
Vado a "casa" e torno
Scrivo test per stringa per provare
Scrivo $stringa per provare

Nel prossimo esempio viene mostrato cosa avviene con un uso non accorto del carattere di backslash. Nella stringa usata per l'esempio è da notare l'uso fatto del carattere backslash nella riga di codice e l'effetto che si ottiene nella stringa stampata a video. Per esempio notare cosa succede quando il carattere backslash è davanti a 'n' e 'r'.

1
2
3
<?php
echo "In \questa \stri\\nga ve\ngono usati \caratte\ri backslash in ma\niera impropria<br />\n";
?>
In \questa \stri\nga ve gono usati \caratte i backslash in ma iera impropria

Operazioni con le stringhe: rimozione, concatenazione o aggiunta caratteri

Rimozione ultimi caratteri: iniziamo con la pulizia della stringa rimuovendo gli ultimi caratteri. Ci troviamo in questa situazione soprattutto quando tentiamo di concatenare vari elementi di una matrice o di un Array. In questo esempio vengono rimossi gli ultimi due caratteri: la virgola e lo spazio finale.

1
2
3
4
5
<?php
$stringa 
"Pasta, Piselli, Fagioli, ";
$stringa_pulita substr($stringa0strlen($stringa)-2);
echo 
$stringa_pulita "<br />\n";
?>
Pasta, Piselli, Fagioli

Concatenazione di più stringhe o oggiunta di caratteri: a volte abbiamo la necessità di concatenare due o più stringhe per ottenere una unica stringa.
La concatenazione delle stringhe si ottiene usando il carattere punto ( . ) tra una stringa ed un'altra o una serie di caratteri come visibile nel seguente esempio.

1
2
3
4
5
6
7
<?php
$cognome 
"Pinco";
$nome "Pallino";
$indirizzo "Via di casa sua";
$nome_completo $cognome " " $nome "<br />" $indirizzo;
echo 
$nome_completo "<br />\n";
?>
Pinco Pallino
Via di casa sua

Ottenere la lunghezza di una stringa

La lunghezza di una stringa: Per conoscere il numero di caratteri contenuti nella stringa, è possibile usare la funzione strlen().

1
2
3
4
5
<?php
$stringa 
"La funzione strlen restituisce la lunghezza di una stringa";
$lunghezza strlen($stringa);
echo 
"Questa stringa ha " $lunghezza " caratteri<br />\n";
?>
Questa stringa ha 58 caratteri

Suddividere una stringa in un Array

Dividere una stringa: per compiere questa operazione è possibile usare più di una funzione PHP. Le più usate sono:

  • La funzione explode() - usando un preciso carattere delimitatore
  • La funzione preg_split() - usando una regular expression quando i caratteri delimitatori sono più di uno

Dividere una stringa con la funzione explode()

Con la funzione PHP explode() è possibile estrarre delle sottostringhe e memorizzarle in un Array.

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$str 
"Dividere una stringa con la funzione explode";
$parts explode(" ",$str);
echo 
"<span class=\"brown\">Stampare le singole sottostringhe estratte</span><br />\n";
echo 
$parts[0] . "<br />\n";
echo 
$parts[3] . "<br />\n";
echo 
"<hr />\n";
echo 
"<span class=\"brown\">Stampare tutte le sottostringhe con un ciclo</span><br />\n";
for (
$i 0$i count ($parts); $i++) {
    echo 
$parts[$i] . "<br />\n";
}
?>
Stampare le singole sottostringhe estratte
Dividere
con

Stampare tutte le sottostringhe con un ciclo
Dividere
una
stringa
con
la
funzione
explode

Limitare il numero di elementi

1
2
3
4
5
6
7
8
<?php
$str 
"Dividere una stringa con la funzione explode";
$parts explode(" "$str3);
echo 
"<span class=\"brown\">Le sottostringhe ottenute</span><br />\n";
for (
$i 0$i count ($parts); $i++) {
    echo 
$parts[$i] . "<br />\n";
}
?>
Le sottostringhe ottenute
Dividere
una
stringa con la funzione explode

Assegnazione delle sottostringhe ad una lista di variabili

1
2
3
4
5
6
7
8
<?php
$str 
"Dividere una stringa con la funzione explode";
list(
$primo$secondo$terzo$quarto) = explode(" "$str4);
echo 
$primo "<br />\n";
echo 
$secondo "<br />\n";
echo 
$terzo "<br />\n";
echo 
$quarto "<br />\n";
?>
Dividere
una
stringa
con la funzione explode

Dividere una stringa con la funzione preg_split()

Anche con la funzione PHP preg_split() le sottostringhe vengono memorizzate in un Array.

1
2
3
4
5
6
7
8
9
<?php
$parts 
preg_split("/[\s,:]+/""Elenco: primo, secondo, terzo");
echo 
$parts[1] . "<br />\n";
echo 
$parts[3] . "<br />\n";
echo 
"<span class=\"brown\">Stampare tutte le sottostringhe con un ciclo</span><br />\n";
for (
$i 0$i count ($parts); $i++) {
    echo 
$parts[$i] . "<br />\n";
}
?>
primo
terzo
Stampare tutte le sottostringhe con un ciclo
Elenco
primo
secondo
terzo

Anche con la funzione preg_split() è possibile assegnazione le sottostringhe ottenute ad una lista di variabili

1
2
3
4
5
6
7
8
9
10
<?php
$data 
"18/07/2013 5:12:51";
list(
$giorno$mese$anno$ore$minuti$secondi) = preg_split('/[-\.\/: ]/'$data);
echo 
"giorno " $giorno "<br />\n";
echo 
"mese " $mese "<br />\n";
echo 
"anno " $anno "<br />\n";
echo 
"ore " $ore "<br />\n";
echo 
"minuti " $minuti "<br />\n";
echo 
"secondi " $secondi "<br />\n";
?>
giorno 18
mese 07
anno 2013
ore 5
minuti 12
secondi 51

Creare un Array da una lista di variabili con la funzione compact()

A volte può tornare utile creare un Array da una lista di variabili. Per far questo è possibile usare la funzione PHP compact() che, da una lista di variabili, restituisce un Array associativo come è mostrato nell'esempio qui sotto.

1
2
3
4
5
6
7
8
9
<?php
$nome 
"Dante";
$cognome "Alighieri";
$eta "41";
$result compact("nome""cognome""eta");
foreach (
$result as $key => $value) {
    echo 
$key " ==> " $value "<br />\n";
}
?>
nome ==> Dante
cognome ==> Alighieri
eta ==> 41

Non è necessario indicare nella lista tutte le variabili finora usate, ma si possono indicare solo quelle necessarie. Se un nome di variabile indicato nella lista non esiste o è sbagliato non viene generato nessun errore ma viene semplicemente ignorato, come è mostrato nel prossimo esempio.

1
2
3
4
5
6
7
8
9
<?php
$nome 
"Dante";
$cognome "Alighieri";
$eta "41";
$result compact("cognome""citta""nome");
foreach (
$result as $key => $value) {
    echo 
$key " ==> " $value "<br />\n";
}
?>
cognome ==> Alighieri
nome ==> Dante

Alla funzione PHP compact() è possibile dare la lista di variabili anche sotto forma di Array, come nel seguente esempio.

1
2
3
4
5
6
7
8
9
10
<?php
$nome 
"Dante";
$cognome "Alighieri";
$eta "41";
$fields = array("cognome""nome""eta");
$result compact($fields);
foreach (
$result as $key => $value) {
    echo 
$key " ==> " $value "<br />\n";
}
?>
cognome ==> Alighieri
nome ==> Dante
eta ==> 41

Creare una stringa da un Array con la funzione implode()

Per concludere una funzione che da un Array restituisce una stringa.
In PHP, come è possibile ottenere da una stringa o da una lista di variabili ottenere un Array, è possibile eseguire anche l'operazione inversa, e cioè ottenere una stringa da un Array con la funzione PHP implode().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$amici
= array ();
$amici= array (
    
"Marco",
    
"Giovanni",
    
"Pasquale",
    
"Giuseppe"
    
"Nicola",
    
"Luisa",
    
"Ivo",
    
"Maria"
);
echo 
implode(", "$amici) . "<br />\n";
?>
Marco, Giovanni, Pasquale, Giuseppe, Nicola, Luisa, Ivo, Maria

 

 



settore tecnico il sito di lorettabweb il Forum di sostegno
il forum il forum il forum