Guida scritta nel 2016, aggiornata a ottobre 2026.
Nella lezione 6 abbiamo visto come fare calcoli con i numeri. Anche con le stringhe si possono fare molte operazioni: per una c’è un operatore apposito, per le altre PHP mette a disposizione delle funzioni.
La concatenazione
L’operazione più usata è la concatenazione, cioè l’unione di due o più stringhe. In PHP si fa con il punto .:
php
<?php
$nome = 'John';
$cognome = 'Doe';
$stringa = 'Nome: ' . $nome . ', Cognome: ' . $cognome;
echo $stringa;
Il risultato è:
Nome: John, Cognome: Doe
Attenzione: in PHP il + serve solo per i numeri. Scrivere 'Nome: ' + $nome non unisce le stringhe, ma genera un errore.
Lo stesso risultato si può ottenere con i doppi apici, come visto nella lezione 5: "Nome: $nome, Cognome: $cognome". La concatenazione è utile quando le parti da unire non sono solo variabili, ad esempio il risultato di una funzione.
Oltre alla concatenazione, PHP offre moltissime funzioni per lavorare con le stringhe. Vediamone tre tra le più usate.
strlen()
strlen() restituisce la lunghezza di una stringa:
php
<?php
$stringa = 'parola';
echo strlen($stringa);
Il risultato è 6, perché “parola” ha 6 lettere.
substr()
substr() restituisce una parte di una stringa:
php
<?php
$stringa = 'parola';
echo substr($stringa, 2, 2);
La funzione riceve tre parametri:
- la stringa da cui estrarre;
- la posizione da cui iniziare;
- quanti caratteri estrarre (facoltativo: se lo ometti, estrae fino alla fine della stringa).
Nell’esempio chiediamo 2 caratteri a partire dalla posizione 2. Il risultato è ro.
Attenzione: le posizioni si contano partendo da zero. In “parola”, la p è in posizione 0, la a in posizione 1 e la r in posizione 2.
str_replace()
str_replace() è il classico “trova e sostituisci”:
php
<?php
$stringa_intera = 'Nome: John';
echo str_replace('John', 'Ted', $stringa_intera);
La funzione riceve tre parametri, in quest’ordine:
- il testo da cercare;
- il testo con cui sostituirlo;
- la stringa in cui cercare.
Il risultato è:
Nome: Ted
Attenzione alle lettere accentate
strlen() e substr() contano i byte, non i caratteri. Nelle stringhe codificate in UTF-8, la codifica standard del web, le lettere accentate occupano 2 byte. Per questo strlen('perché') restituisce 7 invece di 6, e substr() può tagliare una lettera accentata a metà.
Quando lavori con testi in italiano, usa le versioni “multibyte” delle due funzioni, che contano i caratteri reali: mb_strlen('perché') restituisce 6. Si usano allo stesso modo di quelle viste sopra.