Gilbert Skrevet 10. januar 2005 Del Skrevet 10. januar 2005 Det er noen svar man finner ut av om man tenker lenge nok, men som sansynligvis noen andre har tenkt før deg. Derfor spør jeg liksågodt og hører om ikke noen har funnet en løsning før meg: I forumet (mitt) er det en sitatfunksjon, som blir helt gal om man siterer flere ting inni hverandre: [sitat] Enda et sitat [sitat] Sitat [/sitat] [/sitat] ...og den blir absolutt ikke seende slik ut: Enda et sitatSitat ...men derimot blir [sitat] stående som ren tekst inni den første sitat-boksen. $text = preg_replace("#\[sitat\](.*?)\[/sitat\]#is", "<b>Sitat</b><br /><div class=\"quote\">\\1</div>", $text); Hvordan skal jeg få det så flott og fancy som i dette forumet? Lenke til kommentar
Torbjørn Skrevet 10. januar 2005 Del Skrevet 10. januar 2005 hva med å laste ned source for dette forumet og ta en titt? Lenke til kommentar
Gilbert Skrevet 10. januar 2005 Forfatter Del Skrevet 10. januar 2005 Det er selvfølgelig en mulighet. Jeg synes nok det er hyggeligere å snakke rundt et tema, det gir meg større følelse av fellesskap. Sitter med nesa i kildekoder nok som det er, føler det er godt å kunne prate med mennesker også. Lenke til kommentar
Stian_ Skrevet 10. januar 2005 Del Skrevet 10. januar 2005 OFF TOPIC Hvordan kan man laste ned kildekoden? hjelper jo ikke å lagre php fila, eller? Lenke til kommentar
Gilbert Skrevet 10. januar 2005 Forfatter Del Skrevet 10. januar 2005 http://www.invisionboard.com/ Kan laste ned trialversjon, og tror jammen ikke jeg gjør det også Lenke til kommentar
joda_321 Skrevet 10. januar 2005 Del Skrevet 10. januar 2005 OFF TOPICHvordan kan man laste ned kildekoden? hjelper jo ikke å lagre php fila, eller? last ned kildekoden på http://www.phpbb.no/lastned.php Lenke til kommentar
søppel Skrevet 10. januar 2005 Del Skrevet 10. januar 2005 (endret) Dette løses enklest og mest elegant v.h.a. rekursjon: http://en.wikipedia.org/wiki/Recursion (jeg synes det der er så gøy) btw: http://www.mantasoft.co.uk/anim/show.php?url=Recursive.swf Endret 10. januar 2005 av søppel Lenke til kommentar
Gilbert Skrevet 10. januar 2005 Forfatter Del Skrevet 10. januar 2005 bra illustrasjon akkurat det jeg var på jakt etter. trial-versjonen av ipb har en 'ødelagt' kildekode, så tar en titt på artikkelen din søppel. Lenke til kommentar
jorgis Skrevet 10. januar 2005 Del Skrevet 10. januar 2005 (endret) Post-parser for VikingBoard Jeg løste det ganske enkelt ved å parse første del av quoten først, og så ta slutten. Kanskje ikke den mest elegante måten å gjøre det på, men det funker noenlunde greit. EDIT: La til kode: //New, hopefully working BBCode for QUOTES //if there is no =-character, do it the lazy way: $post = preg_replace("#\[quote\]#is", "<fieldset class=\"quote\"><legend>QUOTE:</legend><p class=\"nopadding\">", $post); //else, do it properly $post = preg_replace("#\[quote=(.+?)\]#is", "<fieldset class=\"quote\"><legend>QUOTE: $1</legend><p class=\"nopadding\">", $post); //then the data and the footer $post = preg_replace("#(.+?)\[/quote\]#is", "" . str_replace("<br>", "", "$1") . "</p></fieldset>", $post); Endret 10. januar 2005 av jorgis Lenke til kommentar
søppel Skrevet 10. januar 2005 Del Skrevet 10. januar 2005 fjartan: Om du står totalt fast ellernoe slikt, kan jeg paste noe pseudokode. Jeg kan kanskje strekke meg så langt at jeg paster noe PHP-kode også, hvis du spør pent. :] Åh-fytti .. jeg er snill i dag .. haha :} Lenke til kommentar
Gilbert Skrevet 10. januar 2005 Forfatter Del Skrevet 10. januar 2005 @ j vil ikke halvferdige kodesnutter endre radikalt på utseendet? @ s gi meg et forsøk, så får du en frustrert melding om jeg ikke får det til Lenke til kommentar
Gilbert Skrevet 31. januar 2005 Forfatter Del Skrevet 31. januar 2005 fjartan:(...) Jeg kan kanskje strekke meg så langt at jeg paster noe PHP-kode også, hvis du spør pent. :] Åh-fytti .. jeg er snill i dag .. haha :} Fremdeles snill? Du er veldig veldig kjekk søppel (satser på at søppel tar det som et kompliment) Lenke til kommentar
stiber Skrevet 1. februar 2005 Del Skrevet 1. februar 2005 Jeg har en litt annen innfallsvinkel på bbcode parsingen. Den ser slik ut (Kraftig klippet, kun tatt med det som er vesentlig): <?php //så lenge det finnes åpne/lukke tagger så... while(preg_match("/\[(\w+)=?([^\]])*\](.+?)\[\/\\1\]/s",$post)) { $post = preg_replace_callback("/\[(\w+)=?([^\]]*)\](.+?)(\[\/\\1\]|(?=\[\\1))/s","bbcode_parser",$post); } function bbcode_parser($match) { $match[3] = preg_replace_callback("/\[(\w+)=?([^\]]*)\](.*?)(\[\/\\1\]|(?=\[\\1))/s","bbcode_parser",$match[3]); $lazy = ($match[2]=="") ? true : false; $closing = ($match[4]=="") ? false : true; switch(strtolower($match[1])) { case "quote": if($closing) { return "<fieldset class=\"quote\"><legend>QUOTE: {$match[2]}</legend><p>{$match[3]}</p></fieldset>"; } else { return $match[0]; //Ikke fåreta erstatning. Vent til neste gang, og sjekk om quoten er lukket da. } default: return $match[3]; //Tar bort ukjente bbcode tags } } ?> Det er enkelt å legge til nye typer tags, ettersom det bare er å lage en ny case. Den søker bare gjennom posten hvis der finnes bbcode, og ellers så kjøres den bare så mange ganger som du har max antall nivåer av nesting av f.eks quotes eller lister. Hvis du har lyst på bedre kommentert og komplett kode, så si i fra. Lenke til kommentar
Gilbert Skrevet 1. februar 2005 Forfatter Del Skrevet 1. februar 2005 Jeg er interessert i alt jeg kan lære fra :-) Lenke til kommentar
stiber Skrevet 1. februar 2005 Del Skrevet 1. februar 2005 Har lastet opp koden. Du kan laste den ned her. Du kan prøve å kjøre scriptet også. Har lagt inn en eksempel-post som den parser. Lenke til kommentar
Gilbert Skrevet 1. februar 2005 Forfatter Del Skrevet 1. februar 2005 Dette er kjempeflott stiber Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå