Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [php] groepproject UBB parser maken (https://forum.scholieren.com/showthread.php?t=472762)

Scooter B0y 10-05-2003 18:13

[php] groepproject UBB parser maken
 
Hallo mede s.com nerdjes :)

Uit verveling maar ik altijd ubb parser (don't ask :p) en nu had ik een idee om een goede ubb parser te gaan maken, dit van zich zelf ook zeer inteligent is en zelf fouten in de text kan vinden.

foutjes zoals
code die hier boven staat is [b] [code] [/b] [/code]

en als een quote afsluit alle codes die in de quote nog open waren afsluiten en dan daar buiten weer openen

Voor:
[quote] [b] Blod text in een quote [/quote] verdere text [/b]

Na:
[quote] [b] Blod text in een quote [/b] [/quote] [b]verdere text [/b]


anders krijg je opmaak foutjes zoals, Quote dat bold is bijvoorbeeld


Wie heeft zin om hier mee te werken :?

deathz0rz 10-05-2003 18:17

heej goed id!

ik wil wel meehelpen, maar (MAAR!) ik wil eerst ff m forum gedeeltelijk af hebben (dat je kan lezen e.d., en dat het goed zit met de permissies)

(mag ik die dan gebruiken in me forum??? plz... :D ;))

Scooter B0y 10-05-2003 18:26

je bouwt er toch zelf aan, dus ja? :p

mijn idee is ook om als je een bericht op een forum post dat de eerste stap dan is

dat hij de text omgaat zetten en malig, (scheelt rekenkracht als hij 50 stuks op een pagina moet doen)

bijvoorbeeld:
[b] bold [/b]
omzet naar
[b:123] bold [/b:123]

123 is hier het ID nummer van de post in het forum, zo kun je bij het bericht quoten snel de andere quote replacen tot [...] of er gewoon uitfilteren :)

en dan als je het bericht zelf wil parsen alleen maar dit hoeft te doen

PHP-code:

<?
$uid = 123;

$text = str_replace("[b:$uid]", "<b>", $text);
$text = str_replace("[/b:$uid]", "</b>", $text);

?>


deathz0rz 10-05-2003 19:19

Citaat:

Scooter B0y schreef op 10-05-2003 @ 19:26:
je bouwt er toch zelf aan, dus ja? :p
het is toch handig als ik een slimme parser heb? hoef ik niet HELEMAAL zelf te schrijven

Citaat:

Scooter B0y schreef op 10-05-2003 @ 19:26:
mijn idee is ook om als je een bericht op een forum post dat de eerste stap dan is

dat hij de text omgaat zetten en malig, (scheelt rekenkracht als hij 50 stuks op een pagina moet doen)

bijvoorbeeld:
&#91;b] bold &#91;/b]
omzet naar
&#91;b:123] bold &#91;/b:123]

123 is hier het ID nummer van de post in het forum, zo kun je bij het bericht quoten snel de andere quote replacen tot [...] of er gewoon uitfilteren :)

en dan als je het bericht zelf wil parsen alleen maar dit hoeft te doen

PHP-code:

<?
$uid = 123;

$text = str_replace("[b:$uid]", "<b>", $text);
$text = str_replace("[/b:$uid]", "</b>", $text);

?>


wat is de bedoeling van ":123", phpBB doet dat ook, maar ik zie het nut er niet van in...

Scooter B0y 10-05-2003 21:42

dat :123 (id van post) is gewoon dat de second pass gewoon snelle parse kan doen omdat hij alleen met str_replace alles kan replacen ook qoute in een qoute in een.... enz dat kan preg_replace niet, preg_replace doet maar 1 keer en dan houdt die op (slechte eigenschap eigenlijk) dus gaat de first pass overal :123 bijzetten en dan kan second pass gewone domme werk doen :)

deathz0rz 10-05-2003 21:49

Citaat:

Scooter B0y schreef op 10-05-2003 @ 22:42:
dat :123 (id van post) is gewoon dat de second pass gewoon snelle parse kan doen omdat hij alleen met str_replace alles kan replacen ook qoute in een qoute in een.... enz dat kan preg_replace niet, preg_replace doet maar 1 keer en dan houdt die op (slechte eigenschap eigenlijk) dus gaat de first pass overal :123 bijzetten en dan kan second pass gewone domme werk doen :)
ben ik dom als ik het nog niet snap?

je kan toch gewoon str_replace("[b]", "<b>", $text); doen?

en dat ie de quotes uit de quotes haalt vind ik niet zo nuttig... maar misschien jij wel, maak dan dat je het aan en uit kan zetten...

owja: dit is handig: [quote=username] (zie phpBB)

die moeten we echt inbouwen, en ik vind dat de codes uit een database moeten komen, en dat het makkelijk moet zijn om nieuwe codes toe te voegen

ik zie trouwens niet veel andere mensen die hier op reageren... lijkt me wel handiger trouwens, want met een groep van >3 zoiets doen lijkt me bijna onmogelijk

Scooter B0y 10-05-2003 21:59

denk er nu alleen over ja, enige na deel aan str_replace idee,

bij iedere code moet hij hele bericht weer na zoeken, andere idee is om eerst een splitter te gaan maken die in arrays gooit en dat die die dan gaat na kijken, bijvoorbeeld

PHP-code:

Array
(
    [
0] => Array
        (
            [
0] => 0
            
[1] => text voor quote 
        
)

    [
1] => Array
        (
            [
0] => 1
            
[1] => quote
            
[2] => quote
        
)

    [
2] => Array
        (
            [
0] => 0
            
[1] => text in quote
        
)

    [
3] => Array
        (
            [
0] => 2
            
[1] => quote
            
[2] => /quote
        
)
    [
3] => Array
        (
            [
0] => 0
            
[1] => text na quote
        
)


uitleg:
Code:

    [3] => Array
        (
            [0] => 2 id nummer van soort "probleem"
            [1] => quote tag
            [2] => /quote welke tag gezien
        )
    [3] => Array
        (
            [0] => 0 id nummer van soort "probleem"
            [1] => text na quote [b] omdat id 0 is is gewoon text
        )

id 0 = text
id 1 = tag open
id 2 = tag sluiten


[quote][b]
ben ik dom als ik het nog niet snap?

je kan toch gewoon str_replace("", "<b>", $text); doen?

en dat ie de quotes uit de quotes haalt vind ik niet zo nuttig... maar misschien jij wel, maak dan dat je het aan en uit kan zetten...

owja: dit is handig:
Citaat:

username schreef:
(zie phpBB)

die moeten we echt inbouwen, en ik vind dat de codes uit een database moeten komen, en dat het makkelijk moet zijn om nieuwe codes toe te voegen

ik zie trouwens niet veel andere mensen die hier op reageren... lijkt me wel handiger trouwens, want met een groep van >3 zoiets doen lijkt me bijna onmogelijk

nee dan ben je niet dom :)
als je gewoon str_replace doet kun je maar 1 ding, niett str_replace("(.+)", "<b>\\1</b>", $text); zowals bij preg_replace. str_replace vervangt gewoon wat hij gezegt wordt en geen moeilijke dingen :)

deathz0rz 10-05-2003 23:41

ow, ik snap het nu denk ik, je doet 1st met preg_replace, omdat die het bter kan dan str_bla, maar je wil in de database geen html zetten, en voor de snelheid... *bla**bla*

goed? :D

dat array id vind ik maar niks, dit is een goed plan.. tot wanneer is de inschrijf periode? ;)

Scooter B0y 11-05-2003 09:55

als dit met zoveel personen door gaat.....

niet :(

Vaag mannetje 11-05-2003 10:11

zoiets kan je beter helemaal zelf doen..

maar dan moet je wel alle kennis erover hebben... heb je het niet? Leer het of begin er niet aan.


Alle tijden zijn GMT +1. Het is nu 20:57.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.