Il blog per tutti gli smanettoni del pc

Sostituzione multipla in una stringa con php

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;

3 Commenti a “Sostituzione multipla in una stringa con php”

  1. Franco
    22:57 on dicembre 25th, 2009

    Ciao , conosci un buona guida sul php ?

  2. Gregorio
    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/

  3. Claudio
    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!

Lascia un Commento