Avatar billede razmuz_dk Nybegynder
22. december 2005 - 14:29 Der er 5 kommentarer og
1 løsning

Replaces i speciel rækkefølge

Hej Eksperter,

Jeg har en række replace'er der ser således ud:
$string = str_replace("[k]",en_funktion(),$string);
$string = str_replace("[f]",en_funktion(),$string);
$string = str_replace("[m]",en_funktion(),$string);
$string = str_replace("[a]",en_funktion(),$string);

Som i kan se replacer den hhv. [k], [f], [m], [a] en efter en i den rækkefølge.

Problemet er, at det ikke er i den rækkefølge den skal gøre det. Den skal gøre det i den rækkefølge som [x] forekommer i $string.

Hvis $string indeholder "Det er [a] vejr - men i morgen bliver vejret [f]"

Så skal [a] erstattes med en_funktion() FØR [f] - dette gør den ikke i mit eksempel.

Jeg kunne forestille mig det hele kunne laves i en preg_replace() måske?

Håper i forstår mit problem

mvh. Rasmus
Avatar billede erikjacobsen Ekspert
22. december 2005 - 14:36 #1
$string = preg_replace('/\[(k|f|m|a)\]/',en_funktion(),$string);
Avatar billede razmuz_dk Nybegynder
22. december 2005 - 15:26 #2
Tak for et hurtigt svar. Det virker dog ikke som jeg ønsker det. I dit ovenstående køres en_funktion() kun én gang og returner "NOGET" - [k], [f] osv. erstattes alle med "NOGET". Meningen er at en_funktion() skal køres en gang for hver erstatning.
Avatar billede erikjacobsen Ekspert
22. december 2005 - 17:14 #3
Det kunne du bare have sagt ;) ;)

$string = preg_replace('/\[(k|f|m|a)\]/e','en_funktion()',$string);
Avatar billede razmuz_dk Nybegynder
22. december 2005 - 20:07 #4
Excellent :)

Smid et svar hr. jacobsen!
Avatar billede erikjacobsen Ekspert
22. december 2005 - 21:11 #5
Nej tak, jeg samler slet ikke på point. Svar selv, accepter eget svar.
Avatar billede razmuz_dk Nybegynder
22. december 2005 - 21:22 #6
.. ok -tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester