[php] UBB dubbele quote-tag

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • polu
  • Registratie: December 2002
  • Laatst online: 11-09 19:37
Ik ben met een forum bezig, en nu heb ik een UBB parser geschreven. Deze werkt verder perfect, op de quote-tag na. Dit is de code in kwestie:

code:
1
2
// QUOTE OMZETTEN
$ubb_input = preg_replace('/\[quote](.+)\\[\/quote\]/', '<font size=2> <B>Quote:</B><table bgcolor="6E94B7" class="bordercolor" cellspacing="1" width="90%"><tr><td width="100%"><table cellpadding="2" cellspacing="0" class="quote" width="100%"><tr><td width="100%"><font face="Arial,Helvetica" class="quote" size="1">${1}</font></td></tr></table></td></tr></table></font>', $ubb_input);


Dit werkt perfect, maar als je een dubbele quote doet, zoiets:

code:
1
[quote]tekst[quote]tekst[/quote][/quote]


Dan negeert hij de 2e QUOTE. Waarom is dat?
Ik heb al diverse ubb parsers gezocht op internet, maar ze geven allemaal hetzelfde probleem. Veel forums schijnen deze bug zelfs ook te hebben. PHPBB heeft het zeker weten niet, maar van die code snap ik erg weinig. 8)7

Het is misschien een beetje een RTFM vraag, maar ik kom er echt niet uit :X

jboelen.nl


Acties:
  • 0 Henk 'm!

  • Huppie
  • Registratie: Mei 2003
  • Laatst online: 02-09 09:59
Zo doe ik het :)
PHP:
1
2
3
4
5
6
<?php
while( preg_match( '/\[quote](.+)\\[\/quote\]/', $ubb_input ) )
{
    $ubb_input = preg_replace('/\[quote](.+)\\[\/quote\]/', '<font size=2> <B>Quote:</B><table bgcolor="6E94B7" class="bordercolor" cellspacing="1" width="90%"><tr><td width="100%"><table cellpadding="2" cellspacing="0" class="quote" width="100%"><tr><td width="100%"><font face="Arial,Helvetica" class="quote" size="1">${1}</font></td></tr></table></td></tr></table></font>', $ubb_input);
}
?>

Proud member of TCF - D2OL is zooooo 2005


Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Je moet non-greedy matchen. ;)

Probeer die zoekterm maar es via Google. :)

edit:
Of lazy noemen ze 't soms zelfs wel geloof ik...

[ Voor 30% gewijzigd door Superdeboer op 12-04-2005 20:33 ]

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

Verwijderd

Even een WG-opmerking, maar die <font> tag kan echt niet meer hoor.

Acties:
  • 0 Henk 'm!

  • Huppie
  • Registratie: Mei 2003
  • Laatst online: 02-09 09:59
Superdeboer schreef op dinsdag 12 april 2005 @ 20:32:
Je moet non-greedy matchen. ;)

Probeer die zoekterm maar es via Google. :)

edit:
Of lazy noemen ze 't soms zelfs wel geloof ik...
In dit geval toch juist niet?

Aangezien de laatste [/quote] bij de eerste [quote] hoort?

Proud member of TCF - D2OL is zooooo 2005


Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Ah je hebt gelijk... :X
Als je non-greedy gaat matchen dan negeert-ie waarschijnlijk de laatste [/quote] en dan matcht-ie de eerste openingstag tot en met de eerste sluittag. :/

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

  • polu
  • Registratie: December 2002
  • Laatst online: 11-09 19:37
Geniaal, werkt perfect :) Dat zoiets nergens op google te vinden is :?

Ik ga inderdaad die html codes ook weer eens doorspitten, daar heb ik sinds versie 1.0 niks meer aan gedaan. 8)7 Sommige combinaties kunnen echt niet.

Maar in ieder geval hartelijk bedankt. Ik ga weer verder met bugs uit mijn forum halen :Y)

jboelen.nl

Pagina: 1