Avatar billede buchi Nybegynder
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.
Avatar billede jensgram Nybegynder
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);
}
Avatar billede erikjacobsen Ekspert
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";
Avatar billede erikjacobsen Ekspert
05. august 2008 - 13:57 #3
Avatar billede buchi Nybegynder
05. august 2008 - 14:01 #4
haha! fuck hvor er jeg dum ;) Mange tak gutter :D
Avatar billede jensgram Nybegynder
05. august 2008 - 14:01 #5
Jamen så bliver det et svar :)
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