Mathias Brodala: mit preg_replace nacheinander verscheidene werte

Beitrag lesen

Hallo Mazze.

preg_replace erlaubt leider folgendes nicht:


$zeichenkette = 'XXX und XXX wollen XXX';

$suchmuster = 'XXX';

$ersetzungen[0] = 'Peter';
$ersetzungen[1] = 'Gabi';
$ersetzungen[2] = 'Kuchen';

echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);

Mein Vorschlag:

$zeichenkette = 'XXX und XXX wollen XXX';  
$suchmuster = 'XXX';  
$ersetzungen = array('Peter', 'Gabi', 'Kuchen');  
  
echo '"' . $zeichenkette . '"' . "\n";  
  
for ($i = 0, $start = 0;  
     ($start = strpos($zeichenkette, $suchmuster, $start)) !== false;  
     ++$i, ++$start) {  
  
  $zeichenkette = substr_replace($zeichenkette,  
                                 $ersetzungen[$i],  
                                 $start, strlen($suchmuster));  
}  
  
echo '"' . $zeichenkette . '"';

Einen schönen Samstag noch.

Gruß, Mathias

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules