Martin Larsen skrev:
> Hej Leif
>
>> uid er 8 bytes hex.
>
> Altså fx: [quote:12345ABC=batman]dadada[/quote:12345ABC] ?
>
> > Problemer:
> > A: Der behøver ikke være "=navn"
> > B: Quotes kan være nestet, og der kan være flere i samme msg.
>
> Hvis vi går ud fra uid er unik (deraf navnet), så er det ikke et problem
> at de er nestede, idet regexen så vil søge fra startquouten til den
> tilsvarende slutquote.
>
> Heller ikke det valgfrie =navn er et problem.
>
> Dette burde kunne gøre det:
>
> \[quote:([0-9A-F]{8})(=\w+)?].*?\[/quote:\1]
>
> Det sidste spørgsmålstegn er ikke strengt nødvendigt men kan løse nogle
> problemer med fx genbrug af uid i samme indlæg, og måske også snavs med
> ukorrekt nestede quotes etc.
>
> Og i PHP:
>
> $regex = '\[quote:([0-9A-F]{8})(=\w+)?].*?\[/quote:\1]';
> $text = preg_replace("|$regex|is", '', $text);
> echo $text; //Nu med quotes fjernede
Jeg fik skrevet lidt forkert af.
uid er 10 tegn, og desværre er uid'en IKKE unik, den er den samme for
alle tags i den besked. Måske er det for at kunne styre når man
inkluderer en besked i en anden...
Og navn er omgivet af ""
Så jeg lavede regexp om til dette:
$regex = '\[quote:([0-9A-F]{10})(="\w+")?].*?\[/quote:\1]';
Her er en rigtig tekst.
- - - - - - - -
[quote:c9add63da0="leif"][quote:c9add63da0="Aarhus"][quote:c9add63da0="Djursland"]...
....tekst på niveau 3.[/quote:c9add63da0]
....tekst på niveau 2
[/quote:c9add63da0]
....tekst på niveau 1
[/quote:c9add63da0]
Tekst, der ikke er quotet
- - - - - - - - - - - -
Resultatet er, at der kun bliver fjertet fra det første quote-start til
og med det første quote-slut.
Så det er virkelig en regexp-udfordring
Indtil videre erstatter jeg [quote...] med <div style='display:none'> og
[/quote....] med </div>.
Så bliver quotes skjult, men jeg ville helst have fjernet quotes helt,
så jeg kunne nøjes med at vise de første 200 ord...
Det kan også klares med css(*), men det virker nu lidt dumt at sende
ting, der ikke skal vises
(*) <div style='height: 90px; overflow:hidden;'
onMouseOver='this.style.height=""' onMouseOut='this.style.height="90px"'>
Leif