Avatar billede frisch Nybegynder
30. august 2005 - 16:16 Der er 4 kommentarer

preg_replace problem igen

Jeg har en funktion der i et textarea finder [quote]tekst[/quote] og omdanner det til <div class="quote">tekst</div>. Det virker fint. Men jeg vil også have den til at kunne omdanne:

[quote]tekst [quote]tekst[/quote][/quote] til <div class="quote">tekst <div class="quote">tekst</div></div> og dybere endnu. Hvordan får jeg min funktion til at fortsætte med at omdanne [quote][/quote] når de allerede er omkranset af [quote][/quote] ?

Min funktion ser således ud:

$data = preg_replace("/\[quote\](.*?)\[\/quote\]/U","<div class=\"quote\">\\1<\/div>", $data);
Avatar billede jakobdo Ekspert
30. august 2005 - 17:17 #1
Det er ikke smukt, men du kunne ændre din funktion til:
$data = preg_replace("/\[quote\](.*)\[\/quote\]/U","<div class=\"quote\">\\1<\/div>", $data);
Og så køre den indtil alle quotes er rettet, altså indtil der ikke er flere [quote][/quote] tags.
Avatar billede frisch Nybegynder
31. august 2005 - 12:55 #2
Hvordan griber jeg det lettest an? Har lidt svært ved at se det :)
Avatar billede jakobdo Ekspert
31. august 2005 - 13:32 #3
Hvad forstår du ikke?
du kan lave:
while(strpos($data,"[quote]"))
{
$data = preg_replace("/\[quote\](.*)\[\/quote\]/U","<div class=\"quote\">\\1<\/div>", $data);
}
Avatar billede jakobdo Ekspert
10. september 2005 - 18:29 #4
Fandt du en løsning her?
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