UBB parser doet raar

Gestart doorLuukvdo10 reacties75 weergaven

11 berichten · pagina 1 van 1

Luukvdo

Lid · Topicstarter

Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo o2x,

Ik heb een paar maanden geleden een UBB parser gevonden waar ik inmiddels het nodige aan veranderd heb, maar nu zit ik met 2 problemen.

1. Als een afbeelding breder is dan 900 pixels moet ie verkleind worden en moet het een link worden. Daarvoor heb ik deze code:

[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #007700]function[/COLOR] image_resize[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$font[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$image_size[/COLOR] [COLOR= #007700]= @[/COLOR][URL="http://www.php.net/getimagesize"]getimagesize[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$image_width[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$image_size[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]];[/COLOR]

    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$image_width[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]900[/COLOR][COLOR= #007700]) {[/COLOR]
        [COLOR= #0000BB]$value[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$image_width[/COLOR] / [COLOR= #0000BB]900[/COLOR][COLOR= #007700];[/COLOR]

        [COLOR= #0000BB]$image_height[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$image_size[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]];[/COLOR]
        [COLOR= #0000BB]$image_height[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/round"]round[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$image_height[/COLOR] / [COLOR= #0000BB]$value[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #0000BB]$image[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]<center><a href="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$url[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" target="_blank"><font face="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$font[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" color="#000000" size="2">De afbeelding is verkleind. Klik om te vergroten</font><br><img src="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$url[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" width="900" height="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$image_height[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" border="1"></a></center>[/COLOR][COLOR= #007700];
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
        [COLOR= #0000BB]$image[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]<img src="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$url[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" border="1">[/COLOR][COLOR= #007700];
    }[/COLOR]
    [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$image[/COLOR][COLOR= #007700];
}[/COLOR]
?>


Als ik dan

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] image_resize[COLOR= #007700]([/COLOR][COLOR= #DD0000]http://www.apachefriends.org/images/1238.jpg[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]Comic Sans MS[/COLOR][COLOR= #007700]);[/COLOR]
?>


doe werkt het wel maar als ik

[COLOR= #0000BB]<?php
$bericht[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/preg_replace"]preg_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"#[img](.*?)[/img]#"[/COLOR][COLOR= #007700],[/COLOR] image_resize[COLOR= #007700]([/COLOR][COLOR= #DD0000]"\1"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"Comic Sans MS"[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]$bericht[/COLOR][COLOR= #007700]);[/COLOR]
?>


doe werkt het niet. maar ik heb geen idee wat het probleem is

2. Als ik de UBB code

[QUOTE]
[QUOTE]
aap
[/quote]
Dat is niet aardig
[/quote]
haha


heb dan ziet het er heel verneukt uit:
Afbeelding
de code:

$bericht = preg_replace("#[QUOTE](.+?)[/quote]#", "<blockquote><b>\1 schreef:</b><table cellpadding="3" cellspacing="0" class="bbcode"><tr><td class="bb_quote">\2</td></tr></table></blockquote>", $bericht);


Help aub
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
@ Vraag 1:
Vervang
#
Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt.
#
eens door
#
Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt.
#/e
werkt het dan wel?

edit:
dit dus:
$bericht = preg_replace("#
Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt.
#/e", "image_resize(1, Comic Sans MS)", $bericht);

@ Vraag 2:
Dat kun je niet makkelijk oplossen, helaas.
Je moet een loopje maken die alle [quote tags opzoekt, met de bijbehorende [/quote].
(De eerste [quote hoort bij de laatste [/quote]; de 2e [quote hoort bij de 1-na-laatste [/quote], enzovoort.)
Vervolgens ga je die allemaal parsen; heel gedoe dus. emo
0
Luukvdo

Lid · Topicstarter

Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
@antwoord op vraag 1:
Het werkt niet, ik krijg deze error:

Quote:
Warning: preg_replace() [function.preg-replace]: Unknown modifier / in Y:xampphtdocs***test.php on line 19

Het script ziet er nu zo uit:

[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #007700]function[/COLOR] image_resize[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$font[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$image_size[/COLOR] [COLOR= #007700]= @[/COLOR][URL="http://www.php.net/getimagesize"]getimagesize[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$image_width[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$image_size[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]];[/COLOR]

    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$image_width[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]900[/COLOR][COLOR= #007700]) {[/COLOR]
        [COLOR= #0000BB]$value[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$image_width[/COLOR] / [COLOR= #0000BB]900[/COLOR][COLOR= #007700];[/COLOR]

        [COLOR= #0000BB]$image_height[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$image_size[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]];[/COLOR]
        [COLOR= #0000BB]$image_height[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/round"]round[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$image_height[/COLOR] / [COLOR= #0000BB]$value[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #0000BB]$image[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]<center><a href="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$url[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" target="_blank"><font face="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$font[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" color="#000000" size="2">De afbeelding is verkleind. Klik om te vergroten</font><br><img src="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$url[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" width="900" height="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$image_height[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" border="1"></a></center>[/COLOR][COLOR= #007700];
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
        [COLOR= #0000BB]$image[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]<img src="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$url[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" border="1">[/COLOR][COLOR= #007700];
    }[/COLOR]
    [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$image[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$bericht[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"Dit is een test [img]http://www.apachefriends.org/images/1238.jpg[/img]"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$bericht[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/preg_replace"]preg_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"#[img](.*?)[/img]#/e"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"image_resize(1, Comic Sans MS)"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$bericht[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$bericht[/COLOR][COLOR= #007700];[/COLOR]
?>


@Antwoord vraag 2:
Inderdaad een heel gedoe. Ik nog niet echt een idee hoe ik dat moet gaan doen
0
Luukvdo

Lid · Topicstarter

Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Bump
Iemand een idee hoe ik probleem 1 oplos?
0
Remi

Lid

Berichten
1.270
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Typfoutje van lennard denk ik.

$bericht = preg_replace("#[img](.*?)[/img]#e", "image_resize(1, Comic Sans MS)", $bericht);


Werkt, getest smile
0
Luukvdo

Lid · Topicstarter

Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Thanks, het werkt inderdaad. Je had hetzelfde geantwoord op Habbers xD
0
Remi

Lid

Berichten
1.270
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja weet ik, dan zag je het meteen in het eerste topic waar je keek
Afbeelding
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Nu nog quote in quote
0
Remi

Lid

Berichten
1.270
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Quote in quote heb ik ook, alleen een beetje raar gedaan hoor yummie
$bericht = eregi_replace("[QUOTE]*)]([^[]*)","<div class="quote_bovenkant">Quote (1)</div><div class="quote_midden">2", $bericht);  
$bericht = eregi_replace("([/quote])", "</div>", $bericht);


Maar het werkt wel emo
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
@Remi

bij jouw kun je dus ook gewoon
[QUOTE]hey[QUOTE][/quote] doen?
0
Remi

Lid

Berichten
1.270
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja en dat bugt inderdaad schaterWist niks anders cry
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren