De site van H.J. de Boer

Homepage van H.J. de Boer > Frontpage

Vakantie bijna afgelopen, gepruts weer begonnen


Zo, het heeft even geduurd voor er hier weer wat verscheen. In de tussentijd ben ik namelijk op vakantie geweest met de mannen en Jannek, heb ik wat gewerkt, ben ik naar Duitsland geweest met de familie... en nu begint zo zachtjes aan het einde van de vakantie dan weer in zicht te komen. Hoe betreurenswaardig dat ook moge wezen: het heeft ook een voordeel. (Zie voor meer informatie J. Cruyff). Het is namelijk zo dat als straks de studie weer begint, er automatisch weer een drang komt naar studieontwijkend gedrag. En dat is weer goed voor de website. 8)

Sinds ik vorige week terug ben gekomen uit Duitsland ben ik een beetje aan het prutsen geweest met een nieuwe parser voor de smilies en de BB-codes. Tot nu toe werden die door een stel reguliere expressies afgehandeld. Een voorbeeldje daarvan zie je hier:

php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
/*Er wordt gezocht naar een bepaalde expressie, die in de 
berichtstring wordt omgezet naar een andere expressie*/

    $find = array
    (
        "/[B]([^[]*)[/B]/",
        "/[U]([^[]*)[/U]/",
        "/[I]([^[]*)[/I]/"
    );
    
    $replace = array
    (
        "<b>1</b>",
        "<u>1</u>",
        "<i>1</i>"
    );
            
    $bericht = eregi_replace($find$replace,$bericht);
?>


Nu, dit soort parsing is in de eerste plaats relatief langzaam en ten tweede niet flexibel. Van * .oisyn van Tweakers.net heb ik een parser gekregen onder een gratis licentie, de zogenaamde OML-parser. Dit staat voor Oisyn Markup Language. Deze parser is zeer, zeer geavanceerd en laat allerlei hele leuke trucjes toe. De mogelijkheden zijn eindeloos en de huidige featureset is al minstens drie keer zo uitgebreid als wat ik zelf gemaakt had. Bovendien is het ding ongeveer een derde sneller dan mijn eigen brouwsel.

Met dat script ben ik dan ook de afgelopen week een beetje aan het testen geslagen. Na het lezen van mijn nieuwe boek over PHP4 begreep ik vrijwel meteen hoe ik de parser moest configureren. De settings kan ik dus allemaal inmiddels zelf voldoende aanpassen. Hoe het parsen zelf precies in z'n werk gaat snap ik in grote lijnen, maar nog niet de details. Dat misschien later, dat is eerst ook niet zo heel erg van belang.

Wat merken jullie nu van dit ding?
  • Het is sneller (maar in die staat ook minder bruikbaar voor mij)
  • Het geeft veel meer mogelijkheden (later)
  • Het ding laat andere smilies zien (tijdelijk)
Momenteel parst de nieuwe parser nog niet alle pagina's, maar in ieder geval de frontpage en het quotesoverzicht. Dat quotesoverzicht ziet er momenteel een beetje apart uit, omdat ik nu ineens de beschikking heb over apart uit te delen HTML-rechten en die moet ik nog indelen. Er staan dus wat ongeparste HTML-tags tussen enzo. Verder gebruikt de nieuwe parser momenteel nog andere smilies; dat is zodat ik gemakkelijk in één oogopslag kan zien door welke parser een pagina verwerkt is. Er zijn nog meer dingen die niet helemaal goed opgepikt worden, maar daarvoor hoef ik slechts kleine dingen aan te passen steeds. Dat komt dit weekend wel denk ik.

Dinsdag 7 september moet ik weer in Utrecht verschijnen. Tot die tijd... vermaak ik me wel zoals jullie zien. :P