Avatar billede expnet Seniormester
22. august 2007 - 07:54 Der er 15 kommentarer og
1 løsning

brug af str_replace

Hej exp'er

jeg sidder og roder med en kode, hvor jeg vil bruge "str_replace" til at rette nogle ord med.
Men har et problem med at den vil gerne rette de forkerte steder.

F.eks.:
------------------------

Fra
------------
mid
medlemid
------------

------------------------------------

Til: (med fejl)
------------
id
medleid
------------


håber i kan hjæpe mig med mit problem?.

»Rene«
Avatar billede jakobdo Ekspert
22. august 2007 - 07:58 #1
Hvad er du gerne vil opnå?
Avatar billede expnet Seniormester
22. august 2007 - 08:00 #2
undskylder lige at jeg ikke fik det med ^^

Til: (skulle være)
------------
id
medlemid
------------
Avatar billede jakobdo Ekspert
22. august 2007 - 08:06 #3
Ønsker du replace mid med id?
Avatar billede michael_stim Ekspert
22. august 2007 - 08:12 #4
Det er ellers ligetil:

$string  = "Mit felt mid er nu blevet til id.";
$fra = array("mid", "andetord", "tredjeord");
$til  = array("id", "andetord2", "tredjeord2");

$nyString = str_replace($fra, $til, $string);

Så kan du smide hvilke ord du vil ind i arraysene.
Avatar billede expnet Seniormester
22. august 2007 - 08:12 #5
eks.

$sForm = "mid medlemid telefon mobil post brev";
$sForm = str_replace("mid","id",$sForm);

//bliver til: id medleid telefon mobil post brev
//SKAL blive til: id medlemid telefon mobil post brev
Avatar billede bubbaa Nybegynder
22. august 2007 - 08:12 #6
Kan du ikke sige at den skal replace " mid" med "id", så den kun gør det når der er mellemrum forrest.
Avatar billede jakobdo Ekspert
22. august 2007 - 08:16 #7
Brug denne:

$output = preg_replace('/\bmid/m', 'id', $input);
Avatar billede expnet Seniormester
22. august 2007 - 08:25 #8
michael_stim --> nu hvor du lave den med array $fra og $til

hvis den $string og er en array hvordan ville din kode så se ud


jakobdo --> med betyder /\b og /m ??
Avatar billede nielle Nybegynder
22. august 2007 - 08:25 #9
Eller:

$output = preg_replace('/\bmid\b/m', 'id', $input);

hvis det er at foretrække at undgå fejlene når det kommer til stykket.
Avatar billede expnet Seniormester
22. august 2007 - 08:25 #10
*også*
Avatar billede michael_stim Ekspert
22. august 2007 - 08:33 #11
Så må du jo pakke den ud (kan aldrig huske om det er explode eller implode, tror nok det er implode). Den laver en kommasepareret (eller hvad du nu vil separere den med) string.
Avatar billede michael_stim Ekspert
22. august 2007 - 08:34 #12
Jo det var implode:

$komma_separeret = implode(",", $array);
Avatar billede expnet Seniormester
22. august 2007 - 09:02 #13
jakobdo -> det blev din løsning jeg brugte så vil du ikke ligge et svar..

tak til at der forsøgte at hjælpe med mit problem...

Forsat god onsdag

//rene
Avatar billede jakobdo Ekspert
22. august 2007 - 10:03 #14
Svar!

Overvej dog nielle's løsning:
$output = preg_replace('/\bmid\b/', 'id', $input);
Avatar billede expnet Seniormester
22. august 2007 - 18:01 #15
jakobdo -> kan du ikke forklar mig hvad /\b og \b/m betyder
Avatar billede jakobdo Ekspert
22. august 2007 - 20:42 #16
\b = boundary.
\m = ^$ matcher ny linie.

Hop evt. en tur forbi: http://www.regular-expressions.info/quickstart.html
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