Christoph Jeschke: Random-Funktion

Beitrag lesen

Guten Tag,

Aber. Ich möchte in einer Variable alles Vorkommen von % mit einer
Zufallszahl ersetzen.
Wenn ich dafür str_replace verwende, so werden alle % durch die selbe Zahl
ersetz, weil Zufall() nur einmal aufgerufen wird.
Wie kann ich es erreichen, dass Zufall für jede Ersetzung neu aufgerufen
wird?

Nutze preg_replace_callback() mit deiner Zufall()-Funktion.

Zum Beispiel so:

$ php -r 'function z() {return uniqid("\n",true) ;} echo(preg_replace_callback("!%!","z","ertwe_%_gasdfasd_%_gsd_%_dgdfg_%_yfdfg_%")); echo PHP_EOL;'  
ertwe_  
495a0d89706118.06519038_gasdfasd_  
495a0d89706955.94677240_gsd_  
495a0d89706f42.77885859_dgdfg_  
495a0d89707534.58014239_yfdfg_  
495a0d89707b05.12733189  

uniqid() wird hier jedes Mal neu aufgerufen und % im Muster durch den Rückgabewert ersetzt.

Gruß
Christoph Jeschke

--
Zend Certified Engineer
Certified Urchin Admin