Le stringhe di testo in PHP: string, esempi e funzioni

In questo tutorial vediamo nello specifico il tipo di dato “string“, o stringhe di testo, in PHP.

Le stringhe di testo non sono altro che una successione di caratteri alfabetici, numerici e speciali che compongono una lettera, una parola, una frase o un testo.

Dato che parliamo di sviluppo web, in PHP le stringhe di testo comprendono anche strutture HTML semplici o complesse.

In PHP possiamo definire o realizzare una stringa di testo in quattro modalità:

  • singoli apici
  • doppi apici
  • sintassi heredoc
  • sintassi nowdoc

Stringhe tra singoli e doppi apici

Più avanti vedremo heredoc e nowdoc, quindi focalizziamoci sul metodo standard per definire una stringa di testo in PHP. Inseriamo del testo tra singoli apici e poi tra doppi:

<?php

'Stringa di testo in PHP tra singoli apici';

"Stringa di testo in PHP tra doppi apici";

?>

Però vedrai che visitando la pagina in cui è contenuto questo codice non comparirà nulla.

Questo perché abbiamo sì definito delle stringhe di testo, ma non abbiamo utilizzato nessun comando per ottenere questi dati sulla pagina web.

Quindi utilizziamo il costrutto echo per visualizzare queste stringhe di testo sulla pagina web:

<?php

echo 'Stringa di testo in PHP tra singoli apici';

echo "Stringa di testo in PHP tra doppi apici";

?>

Nota bene: il costrutto echo va messo sempre prima il contenuto che voglio visualizzare su una pagina web.

Otteniamo questo risultato:

mostrare due stringhe a singoli e doppi apici in php

Come puoi vedere queste stringhe vengono visualizzate sulla pagina web ma sono attaccate tra loro.

Questo perché se abbiamo in successione più elementi in output, con il costrutto echo, PHP li metterà uno dopo l’altro. Quindi posso lasciare quante righe voglio tra un echo e un altro, il risultato sarà lo stesso.

Dato che stiamo parlando di pagine HTML che vengono elaborate in PHP, posso elaborare come stringa di testo un tag HTML del tipo “nuova linea” ovvero “<br>” (in inglese break line).

Quindi tra un echo e l’altro inseriamo echo "<br>", che sia a singoli o doppi apici non importa:

<?php

echo 'Stringa di testo in PHP tra singoli apici';

echo "<br>";

echo "Stringa di testo in PHP tra doppi apici";

?>

Vediamo nuovamente cosa otteniamo:

mostrare stringhe a singoli e doppi apici con tag html br

Vedrai che le scritte appariranno una sopra l’altra proprio perché il tag “<br>” manderà a capo la stringa successiva da visualizzare.

Differenza tra stringhe a singoli e doppi apici

Il fatto che in PHP si possano definire stringhe con singoli e doppi apici può confonderti. Ma è possibile chiarire il tutto capendo che:

  • le stringhe a singoli apici non accettano al loro interno le variabili
  • le stringhe a doppi apici accettano al loro interno le variabili

Partiamo dal secondo caso. Facciamo finta che abbiamo questa variabile $nome e poi una stringa a doppi apici in output (echo "Il mio nome è";):

<?php

$nome = "Michele";

echo "Il mio nome è";

?>

Noi vogliamo inserire il contenuto della variabile $nome nella stringa a doppi apici "Il mio nome è" per comporre l’ovvia frase.

Con le stringhe a doppi apici possiamo inserire la variabile all’interno dei doppi apici nel seguente modo:

<?php

$nome = "Michele";

echo "Il mio nome è $nome";

?>

Risultato:

Il mio nome è Michele

Quando inseriamo una variabile in una stringa a doppi apici è buona pratica usare le parentesi graffe:

<?php

$nome = "Michele";

echo "Il mio nome è {$nome}";

?>

Il risultato sarà lo stesso. Quindi ricorda questa buona pratica, migliora anche la visibilità delle variabili nelle stringhe.

Però il discorso è diverso per le stringhe a singoli apici, infatti NON possiamo seguire lo stesso esempio. Ma proviamoci lo stesso, quindi al posto dei doppi apici usiamo quelli singoli:

<?php

$nome = "Michele";

echo 'Il mio nome è {$nome}';

?>

Questo sarà il risultato:

Il mio nome è {$nome}

Quindi PHP non va a ripescare il contenuto della variabile. Quindi l’unico metodo è utilizzare la concatenazione utilizzando il punto “.” in questo modo:

<?php

$nome = "Michele";

echo 'Il mio nome è ' . $nome;

?>

Così il risultato sarà come quello di prima:

Il mio nome è Michele

Inserire delle stringhe di testo nelle variabili e visualizzarle

In PHP è possibile inserire stringhe di testo nelle variabili e quindi in memoria. Ecco alcuni esempi:

<?php 

$nome = "Michele";
$cognome = "Mincone";

Subito dopo possiamo utilizzare il costrutto echo per vederne il contenuto, utilizzo <br> per andare su una nuova linea:

<?php 

$nome = "Michele";
$cognome = "Mincone";

echo $nome;
echo "<br>";
echo $cognome;

?>

Risultato:

Michele
Mincone

All’interno delle variabili posso inserire una o più variabili se ho una stringa a doppi apici:

<?php

// Preparo alcune variabili
$nome = "Michele";
$cognome = "Mincone";
$professione = "sviluppatore web";

// Inserisco le variabili nella stringa a doppi apici
$stringa = "Il mio nome è {$nome} {$cognome}. Nella vita faccio lo {$professione}.";

echo $stringa;

?>

Risultato:

Il mio nome è Michele Mincone. Nella vita faccio lo sviluppatore web.

Oppure utilizzo il metodo della concatenazione per stringhe a singoli apici:

<?php

// Preparo alcune variabili
$nome = "Michele";
$cognome = "Mincone";
$professione = "sviluppatore web";

// Concateno le variabili con la stringa a singoli apici
$stringa = 'Il mio nome è ' . $nome . ' ' . $cognome . '. Nella vita faccio lo ' . $professione . '.';

echo $stringa;

?>

Questo metodo può dare un po’ di confusione all’inizio, ma otteniamo lo stesso risultato:

Il mio nome è Michele Mincone. Nella vita faccio lo sviluppatore web.

Concatenare le stringhe

In PHP posso concatenare più stringhe contenute nelle variabili con il punto “.”:

<?php

$introduzione = "Il mio nome è ";
$nome = " Michele ";
$cognome = " Mincone ";
$fine = ".";

echo $introduzione . $nome . $cognome . $fine;

Risultato:

Il mio nome è Michele Mincone.

Accedere ai caratteri di una stringa

Quando definiamo una stringa, in qualsiasi modo, in una variabile possiamo accedere ai suoi singoli caratteri.

Per fare ciò possiamo usare le parentesi quadre con un numero all’interno affianco alla variabile.

Il numero tra le parentesi quadre servirà a selezionare il carattere desiderato nella stringa. Il conteggio dei caratteri parte dal numero 0 (e non da 1) per selezionare il primo carattere. Ecco un esempio:

<?php

// Definisco una variabile con stringa
$nome = "Michele";

// Seleziono il primo carattere
echo $nome[0];

?>

Risultato:

M

Se volevo selezionare il secondo carattere utilizzavo il numero 1 tra parentesi quadre, per il terzo carattere il numero 2, per il quarto il numero 3 e così via:

<?php

// Definisco una variabile con stringa
$nome = "Michele";

// Seleziono il secondo, terzo, quarto e quinto carattere, utilizzo dei tag <br> per andare a capo
echo $nome[1];

echo "<br>";

echo $nome[2];

echo "<br>";

echo $nome[3];

echo "<br>";

echo $nome[4];

?>

Risultato:

i
c
h
e

Quindi è fondamentale capire che per accedere ai singoli caratteri di una stringa si parte da una variabile e che il conteggio dei caratteri parte da 0 (primo carattere) e non da 1.

La funzione is_string()

Possiamo riconoscere se una variabile contiene una stringa con la funzione is_string(). Passando una variabile se questa è una stringa la funzione ritorna true se non lo è ritorna false:

<?php

$stringa = "Sono Michele";
$numero = 48;

var_dump( is_string($stringa) );
echo "<br>";
var_dump( is_string($numero) );

?>

Con var_dump() possiamo apprezzare il risultato della funzione is_string():

bool(true)
bool(false)

Per cui, questa funzione è molto utile quando utilizzo i blocchi condizionali if-else:

<?php

$var = "Il mio nome è Michele";

if ( is_string( $var ) ) {
    echo "È una stringa";
} else {
    echo "Non è una stringa";
}

?>

Risultato:

È una stringa

Ottenere la lunghezza di una stringa

In PHP esistono molte funzioni precostruite per lavorare con le stringhe o manipolarle.

Un esempio è la funzione strlen() usata per calcolare la lunghezza dei caratteri di una stringa.

Definiamo una stringa in una variabile e la passiamo nella funzione strlen(), prima di ciò usiamo il costrutto echo per ottenere la lunghezza dei caratteri in formato numerico:

<?php

// Definiamo alcune stringhe nelle seguenti variabili
$stringa1 = "Michele";
$stringa2 = "Il mio nome è Michele";
$stringa3 = "Faccio lo sviluppatore web di lavoro";
$stringa4 = "Ho 21 anni";

// Poi mostriamo su schermo la lunghezza di queste stringhe e andiamo a capo con <br>
echo strlen( $stringa1 );

echo "<br>";

echo strlen( $stringa2 );

echo "<br>";

echo strlen( $stringa3 );

echo "<br>";

echo strlen( $stringa4 );

?>

Come risultato otteniamo il numero dei caratteri di ogni stringa:

7
22
36
10

Funzioni per lavorare con le stringhe

Oltre alla funzione strlen() che abbiamo visto prima, in PHP ci sono molte altre funzioni per manipolare e lavorare con le stringhe. Ecco altri esempi:

  • explode() per trasformare una stringa in un array
  • trim() usata per rimuovere gli spazi a sinistra e a destra (inizio e fine) di una stringa
  • ltrim() rimuove lo spazio vuoti all’inizio di una stringa (sinistra)
  • rtrim() rimuove lo spazio vuoti alla fine di una stringa (destra)
  • str_replace() per rimpiazzare parole in una stringa tenendo conto di maiuscole o minuscole
  • str_ireplace() per rimpiazzare parole in una stringa non tenendo conto di maiuscole o minuscole
  • preg_replace() per rimpiazzare parole o elementi in una stringa tramite espressioni REGEX (espressioni regolari o regular expressions)
  • md5() per calcolare l’hash md5 di una stringa
  • strtolower() trasforma una stringa in caratteri tutti minuscoli
  • strtoupper() trasforma una stringa in caratteri tutti maiuscoli
  • substr() per ottenere una porzione di una stringa

Queste sono soltanto alcune delle funzioni per questo scopo. Vedremo queste e altre in articoli dedicati per esplorare il loro meccanismo nello specifico.

Altrimenti vedile tutte sulla documentazione di PHP in funzioni per le stringhe.