UBB Codes niet afkorten

Pagina: 1
Acties:

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 15:33
Hallo Tweakers,

Ik heb een soort van 'spambox' gemaakt, hier zit een functie in die woorden afbreekt die langer zijn dan 15 tekens.
Helaas breekt deze functie ook de UBB tags af die ik toe laat in de spambox.

Het script:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
function spamtags($in)
    {
    $b = explode(" ",$in); 
    $a = 0;
    while(list($nr,$wrd) = each($b)) 
        { 
        $a++;
        if(strlen($wrd) > 15) 
            { 
            $n[$a] .= substr($wrd,0,15)."... ";
            }
        else 
            { 
            $n[$a] = $wrd; 
            } 
        } 
    $in = implode(" ",$n);

    $in = eregi_replace("\\[url\][[:space:]]*(http://)?([^\\\[]*)[[:space:]]*\\[/url\]","<a href=\"http://\\2\" target=\"_blank\">\\2</a>",$in);
    $in = preg_replace("/(\\[ref\])(.*)(\\[\/ref\])/U","<a href=\"?ref=\\2\">ref: \\2</a>", $in);
    return $in;
    }
?>


Is het mogelijk om de UBB tags [url] en [ref] niet af te korten?

Een voorbeeld staat op
http://www.partypassion.net/?pid=main/home
(Links onder)

[ Voor 16% gewijzigd door GewoonNico op 29-12-2003 16:03 ]


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Lijkt mij dat je met preg_match_all woorden langer dan 15 tekens kunt vinden, met [[:alpha:]]{15,999} ofzow, en die kun je dan afkorten :)

offtopic:
whoami: is goed hoor :) btw, ik weet niet wat je tweede voorbeeld was - ik kan geen usernotes lezen ;)

[ Voor 121% gewijzigd door creative8500 op 29-12-2003 16:16 ]


Verwijderd

Is het mogelijk om eerst de smilies te replacen en daarna pas de woorden op lengte te filteren?

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 15:33
Nee, dat zou niks uitmaken citus, want dan zou je html code worden afgekort.

Het probleem is al opgelost, als ik iets langer had nagedacht dan was ik er zelf ook uit gekomen haha


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
function spamtags($in)
    {
    $b = explode(" ",$in); 
    $a = 0;
    while(list($nr,$wrd) = each($b)) 
        { 
        $a++;
        if((strlen($wrd) > 15) && (substr($wrd,0,5) != "[url]") && (substr($wrd,0,5) != "[ref]")) 
            { 
            $n[$a] .= substr($wrd,0,15)."... ";
            }
        else 
            { 
            $n[$a] = $wrd; 
            } 
        } 
    $in = implode(" ",$n);

    $in = eregi_replace("\\[url\][[:space:]]*(http://)?([^\\\[]*)[[:space:]]*\\[/url\]","<a href=\"http://\\2\" target=\"_blank\">\\2</a>",$in);
    $in = preg_replace("/(\\[ref\])(.*)(\\[\/ref\])/U","<a href=\"?ref=\\2\">ref: \\2</a>", $in);
    return $in;
    }
?>


Er zit alleen 1 bug in, wanneer je typt http://www.hahaha-ik-type-wel-lekker-lange-woorden.net
Dan werkt ie niet, maar dat probleempie kan ik ook wel oplossen