Brug af preg_replace og regex. Overfør del fra "pattern" til "replacement?
Hej eksperter.Mit problem var halv akavet at skulle beskrive i titlen, men her kommer et lidt bedre forsøg.
Jeg har en side hvorpå at en bruger kan skrive lidt om sig selv, og har besluttet mig for at tillade følgene tags:
<b></b>
<i></i>
<u></i>
<br />
og
<a target="_blank" href="http://">LINK</a>
Når min bruger gemmer teksten om ham selv, bliver alle "<" udskiftet med "[", og alle ">" udskiftet med "]".
På den måde sikre jeg mig at alle tags stadig er der men er ubrugelige.
Når teksten så bliver hentet ned fra min MySQL DB, bytter den følgene ting ud:
= <b></b>
= <i></i>
= <u></u>
[br /] = <br />
og HER er jeg så gået i stå, da jeg skal til at lave linket om til html igen, da et link varierer pga hvad brugeren sætter ind.
De andre ting er ret simple, og jeg har blot brugt f.eks:
$whoami = str_replace("[b]", "<b>", $whoami);
til at få skiftet en del af det ud.
Et link kan jo både være
[a target="_blank" href="http://google.dk"]Google link[/a]
såvel som det kan være
[a target="_blank" href="http://facebook.dk"]facebook link[/a]
Hvordan gør jeg linket til HTML igen?
Har lusket mig frem til at jeg måske kan bruge regex, og er kommet frem til følgene kode:
$whoami = preg_replace("/\[a.*target\=\"_blank\".*href\=\".*\".*\].*\[\/a\]/", "<a target=\"_blank\" href=\".*\">.*</a>", $whoami);
Jeg prøver altså at blot at udskifte < med [, og ] med >, dog kun hvor der er angivne tags.
Can anyone help me?
Hvis jeg ikke har forklaret problemet godt nok, eller det er dårligt forklaret, så sig endelig til!!
Tak på forhånd!
- Christian
