05. august 2008 - 13:43
Der er
4 kommentarer og 1 løsning
PHP preg_replace problem
Goddag. Jeg sidder med et utroligt underligt problem med preg_replace funktionen i PHP. Følgende virker ikke: $array[message] = 'hej'; $array[message1] = 'med'; $array[message2] = 'dig'; $str = 'en streng hvor %message% skal replaces.'; foreach($array as $key => $value) { $return = preg_replace("/%$key%/", $value, $str); } Men tilgengæld virker følgende: $array[message] = 'hej'; $array[message1] = 'med'; $array[message2] = 'dig'; $str = 'en streng hvor %message% skal replaces.'; foreach($array as $key => $value) { if($key == 'message') $p = 'message'; $return = preg_replace("/%$p%/", $value, $str); } Resume: preg_replace() functionen godtager ikke variablen fra foreach... Tak på forhånd :) P.S. Jeg har tjekket for datatype, ens strenge. både $p og $key er af samme type og har nøjagtigt det samme indhold.
Annonceindlæg fra DE-CIX
05. august 2008 - 13:56
#1
Er det ikke fordi du bliver ved at replace i $str, der aldrig ændres? foreach($array as $key => $value) { $return = preg_replace("/%$key%/", $value, $str); } ---> foreach($array as $key => $value) { $str = preg_replace("/%$key%/", $value, $str); }
05. august 2008 - 13:56
#2
Nemlig ;) Følgende kode udskriver: " en streng hvor hej skal replaces. " $array[message] = 'hej'; $array[message1] = 'med'; $array[message2] = 'dig'; $str = 'en streng hvor %message% skal replaces.'; foreach($array as $key => $value) { $str = preg_replace("/%$key%/", $value, $str); } print "$str\n";
05. august 2008 - 13:57
#3
05. august 2008 - 14:01
#4
haha! fuck hvor er jeg dum ;) Mange tak gutter :D
05. august 2008 - 14:01
#5
Jamen så bliver det et svar :)
Vi tilbyder markedets bedste kurser inden for webudvikling