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 Computerworld
Open Source AI er på vej ind i kommunerne
Med OS2ai forsøger Aarhus Kommune og OS2-fællesskabet at give offentlige medarbejdere adgang til generativ AI uden at gøre kommunerne mere afhængige af amerikanske techgiganter.
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";