Corsi on-line

Utilizzo simultaneo di preg_replace per sostituzioni multiple

Come è noto, la funzione PHP str_replace() permette di sostituire una sotto-stringa presente all’interno di una stringa con un’altra sotto-stringa; applicando per esempio tale funzione in un caso come il seguente:

$stringa = 'Homer e Bart tornano a Springfield.';
$nuova_stringa = str_replace('Homer', 'Lisa', $stringa);
echo $nuova_stringa;

otterremo come output la stringa “Lisa e Bart tornano a Springfield”; ma quale dovrebbe essere la giusta procedura da seguire nel caso in cui volessimo operare più sostituzioni con un’unica chiamata?

php

A questo proposito potrebbero esserci di grande aiuto gli array che, nel caso specifico, utilizzeremo per raccogliere i valori relativi alle sotto-stringhe da sostituire e a quelle sostitutive, e la funzione preg_replace() che adotteremo in sostituzione di str_replace() per avvalerci del supporto delle espressioni regolari; si osservi quindi il funzionamento dello script proposto di seguito:

$stringa = 'Homer, Lisa e Bart tornano a Springfield.';
$pattern[0] = '/Homer/';
$pattern[1] = '/Lisa/';
$pattern[2] = '/Bart/';
$replacement[2] = 'Apu';
$replacement[1] = 'Boe';
$replacement[0] = 'Milhouse';
$nuova_stringa = preg_replace($pattern, $replacement, $stringa);
echo $nuova_stringa;

L’output prodotto dall’esecuzione dello snippet sarà:

Apu, Boe e Milhouse tornano a Springfield.

Per cui la funzione preg_replace() non si occuperà unicamente della sostituzione delle sotto-stringhe, ma anche di garantire che essa avvenga nel giusto ordine definito attraverso gli indici degli array.

Post correlati
I più letti del mese
Tematiche