La funzione str_replace di PHP è utilizzata per sostituire tutte le occorrenze di una stringa all’interno di un’altra stringa. Questa funzione è molto versatile e può essere applicata a vari scenari di manipolazione delle stringhe.
Indice
La sintassi di str_replace()
La sintassi della funzione è la seguente:
str_replace(cerca, sostituisci, dove_cercare)
Vediamo un esempio:
echo str_replace("mela", "pera", "Paolo mangia la mela");
L’output prodotto sarà:
Paolo mangia la pera
Nell’esempio sopra, la stringa “mela” viene cercata all’interno della stringa “Paolo mangia la mela” e sostituita con la parola “pera”. Il risultato finale è “Paolo mangia la pera”.
Sostituzioni multiple con str_replace()
La funzione str_replace può accettare anche array come argomenti per effettuare sostituzioni multiple in una sola chiamata. Vediamo un esempio:
$testo = "I miei amici Luca, Paolo e Claudio sono al mare";
$cerca = array("Luca", "Paolo", "Claudio");
$sostituisci = array("Max", "Roberto", "Alex");
echo str_replace($cerca, $sostituisci, $testo);
L’output restituito sarà:
I miei amici Max, Roberto e Alex sono al mare
In questo caso, la funzione ha sostituito ogni nome all’interno dell’array $cerca
con il corrispondente nell’array $sostituisci
.
Differenze tra str_replace() e str_ireplace()
È importante notare che str_replace è case-sensitive, ossia distingue tra maiuscole e minuscole. Ad esempio:
echo str_replace("mela", "pera", "Paolo mangia la Mela");
In questo caso, la stringa “Mela” con la “M” maiuscola non verrà sostituita, e l’output sarà:
Paolo mangia la Mela
Se si desidera effettuare sostituzioni senza distinguere tra maiuscole e minuscole, si può utilizzare la funzione str_ireplace(), che funziona in modo analogo ma non è case-sensitive. Esempio:
echo str_ireplace("mela", "pera", "Paolo mangia la Mela");
L’output sarà:
Paolo mangia la pera
Esempi pratici di utilizzo di str_replace()
Sostituzione con una stringa vuota
Se desideri eliminare una specifica stringa o carattere dalla tua stringa di origine, puoi sostituirlo con una stringa vuota. Ad esempio:
$text = "Questo è un esempio di testo con una parola indesiderata.";
$nuovo_testo = str_replace("indesiderata", "", $text);
echo $nuovo_testo;
L’output prodotto sarà:
Questo è un esempio di testo con una parola.
Sostituzione di testo in una stringa multilinea
La funzione str_replace può essere utilizzata per sostituire del testo anche in una stringa che contiene più righe. Ad esempio:
$text = "Questo è un esempio di testo.\nPuò contenere più righe.\nSostituiamo la parola 'righe' con 'linee'.";
$nuovo_testo = str_replace('righe', 'linee', $text);
echo $nuovo_testo;
L’output sarà:
Questo è un esempio di testo. Può contenere più linee. Sostituiamo la parola 'linee' con 'righe'.
Sostituzione di caratteri speciali
La funzione str_replace può essere utilizzata per sostituire caratteri speciali o escape sequence all’interno di una stringa. Ad esempio, per sostituire il carattere di nuova linea (“\n”) con uno spazio, puoi fare:
$text = "Questa\nè\nuna\nstringa\ncon\nnuove\nlinee";
$nuovo_testo = str_replace("\n", " ", $text);
echo $nuovo_testo;
L’output sarà:
Questa è una stringa con nuove linee
In questo esempio, il carattere di nuova linea “\n” è stato sostituito con uno spazio, creando così una stringa senza interruzioni di riga.
Utilizzo di array associativi per sostituzioni personalizzate
Quando si desidera effettuare sostituzioni personalizzate basate su valori specifici, è possibile utilizzare un array associativo come argomento per la funzione str_replace. Ad esempio:
$text = "Il prezzo del prodotto è {prezzo} €.";
$replacements = array('{prezzo}' => '19.99');
$nuovo_testo = str_replace(array_keys($replacements), array_values($replacements), $text);
echo $nuovo_testo;
L’output prodotto sarà:
Il prezzo del prodotto è 19.99 €.
In questo esempio, la variabile {prezzo}
all’interno della stringa è stata sostituita con il valore 19.99
.