10. februar 2003 - 09:10Der er
12 kommentarer og 1 løsning
problemer med eregi_replace
Jeg har lavet lidt kode der gerne skulle erstate alle [pris=XX] med XX * en konstant. Men der er et problem med at få overført variablen til funktionen pris. Jeg tror nok i kan regne ud hvad der er meningen med scriptet med det virker bare ikke.
function pris($pris) { $nypris = $pris * 5.84; return "$nypris"; } $tekst = 'gfsdg [pris=25] hgjkad gjkfadlhgjkafdhgadhjafkg l hkad jgkl ag ahjdhal '; $tekst = eregi_replace("\[pris=([0-9]+)\]", pris('\\1'), $tekst); echo $tekst;
Det er fordi at jeg har en side med priser der er afhængig af doller kursen. Så var det at planen at hvergang der var en pris så skrive [pris=xx] hvor xx er prisen i doller. Og så erstatte alle priserne i dollers til priser i kroner.
Teksten ligger i en database og bliver hentet ud som $tekst
Det skal bruges på en hjemmeside hvor alle siderne ligger i en database. Der skal så kunne skrives en eller flere priser ind forskellige steder i teksterne som så rettes ved udskrivning.
takker mange gange. Det var den perfekte løsning på problemet. Koden ser nu sådan her ud: ///----------- $kurs = 7.5; $tekst = 'Prisen på varen er [pris=84,5]. Hvis du vil købe to koster de [pris=150].'; while(ereg("\[pris=[1-9][0-9]+(\,[0-9]{1,2})?\]",$tekst,$regEx)) { $erstat = substr($regEx[0],6,-1); $value = ereg_replace(",", ".",$erstat); $replace_string = number_format($kurs * $value, 0, ',', '.') . " kr."; $tekst = ereg_replace("\[pris=" . $erstat . "\](.)?",$replace_string,$tekst); } echo $tekst;
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.