Problem med at replace...

Tags:    php

Jeg er ved at sørge for, at der bliver mulighed for at lave fed, kursiv og fremhævet tekst, samt smileys, i mit forum
Dem laver jeg så, ved at inkludere en fil, der siger:

Fold kodeboks ind/udKode 



Nu er det så sådan, at jeg gerne vil have, at man ved at skrive [kode] [/kode] rundt om en tekst, undgår, at der bliver lavet smileys og fed/kursiv/fremhævet tekst i indlægget

Jeg har prøvet med forskelligt, men jeg kan ikke regne ud, hvad det er man skal gøre... Er det ved hjælp af ereg_replace muligt, at gøre det tilbage igen, i alt tekst mellem [kode] og [/kode] ?

Mvh.
Clara



Indlæg senest redigeret d. 02.06.2007 20:58 af Bruger #11381
4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Nu ved jeg hvor stor forskel der er på ereg og preg... men regex vil nok ligne noget a la din - den er næsten rigtig... :)

regex: /\\[b\\]([^\\]]*)\\[\\/b\\]/i

så er det bare at proppe den ind i en preg_match eller preg_replace.

Du kan altid prøve din regex af med:
Fold kodeboks ind/udKode 


Dette skulle gerne give "asdas" på index 1 i $match.



Indlæg senest redigeret d. 02.06.2007 22:59 af Bruger #10216
Jeg kiggede lige lidt på preg_match i manualen...
Vil dette ikke bare udskrive "asdas" på skærmen?
For det jeg søger, er noget, der skriver tegnene på skærmen, og ikke laver tegnene om til fed, kursiv, fremhævet, og ikke laver tekst-smileys om til smileys...
Som laver teksten "tilbage" igen, mellem [kode] og [/kode], hvis man kan sige det sådan :)
Men jeg prøver lige funktionen af, det kan jo være, at det bare er mig der har misforstået det :P

Mvh.
Clara



Det vil det sikkert... jeg pudsede også kun din regex-streng af.
Resten af koden ser ud til at være rigtig nok.

Du kan bruge $str = ereg_replace(regex,'<b>\\1</b>',$str);
eller $str = preg_replace(regex,'<b>\\1</b>',$str);

Det står dig frit for... :)



Hehe, okay :P

Men mit problem ligger i, at fiske indholdet mellem [kode] og [/kode] ud, og så sørge for, at den kun aktivere smileys og fed/fremhævet/kursiv uden for [kode] og [/kode]
Hvis du/I forstår? :)

Så i denne tekst:

Fold kodeboks ind/udKode 


Vil den ikke lave smileys og anderledes tekst mellem [kode] og [/kode], men i stedet vise tegnene

Her inde på udvikleren er der også en sådan funktion, der bruges ordet code bare, i stedet for kode ;)

Men ellers tak :)




Indlæg senest redigeret d. 07.06.2007 14:18 af Bruger #11381
t