Sostituzione multipla in una stringa con php
dic 25
Con str_replace() è possibile sostituire una porzione di stringa con un altra.
$stringa = "elementodasostituire qui testo ecc"; $stringa = str_replace("elementodasostituire","qui testo",$stringa); echo $stringa;
Il risultato che ci aspettiamo è
qui testo qui testo ecc
Ma se avessi piu’ elementi da sostituire ?
Dovrei fare una cosa del genere :
$stringa = "elementodasostituire1, elementodasostituire2, elementodasostituire3 qui testo ecc"; $stringa = str_replace("elementodasostituire1", "testo1" , str_replace("elementodasostituire2", "testo2", str_replace("elementodasostituire3", "testo3", $stringa))); echo $stringa;
Il codice è poco leggibile. Realizziamo una funzione che ci puo’ aiutare:
function str_replaceByArray($theArray,$stringa){ if(is_array($theArray)){ foreach($theArray as $key => $valore){ $stringa = str_replace($key, $valore, $stringa); } } return $stringa; } $stringa = "elementodasostituire1, elementodasostituire2, elementodasostituire3 qui testo ecc"; $replace = array("elementodasostituire1"=>"testo1" ,"elementodasostituire2"=>"testo2", "elementodasostituire3"=>"testo3" ); $stringa = str_replaceByArray($replace,$stringa); echo $stringa;
22:57 on dicembre 25th, 2009
Ciao , conosci un buona guida sul php ?
23:16 on dicembre 25th, 2009
Ciao Franco , benvenuto su iosmanetto.it
La migliore guida in php ?
http://php.html.it/guide/leggi/99/guida-php-di-base/
18:05 on agosto 10th, 2011
Ma non è più semplice passare direttamente 2 array?
Es:
$originale = “1 2 3″;
$numeri = array(“1″, “2″, “3″);
$parole = array(“un”, “due”, “tre”);
$sostituzione = str_replace($numeri, $parole, $originale);
Ora $sostituzione vale “un due tre”;
Ciao!