Avatar billede supermand69 Nybegynder
24. oktober 2004 - 19:03 Der er 11 kommentarer og
1 løsning

smilies funktion

jeg har en funktion som indsætter smilies i en tekst streng

function txt2smilies($txt)
{
    $trans = array(
        ':)' => '<img src=\'gfx/smilie.smile.gif\'>',
        ':-)' => '<img src=\'gfx/smilie.smile.gif\'>',
        ';)' => '<img src=\'gfx/smilie.wink.gif\'>',
        ';-)' => '<img src=\'gfx/smilie.wink.gif\'>',
        ':(' => '<img src=\'gfx/smilie.sad.gif\'>',
        ':-(' => '<img src=\'gfx/smilie.sad.gif\'>',
        ':p' => '<img src=\'gfx/smilie.tongue.gif\'>',
        ':-p' => '<img src=\'gfx/smilie.tongue.gif\'>',
        ':P' => '<img src=\'gfx/smilie.tongue.gif\'>',
        ':-P' => '<img src=\'gfx/smilie.tongue.gif\'>',
        ':-D' => '<img src=\'gfx/smilie.laugh.gif\'>',
        ':D' => '<img src=\'gfx/smilie.laugh.gif\'>',
        ':d' => '<img src=\'gfx/smilie.laugh.gif\'>',
        ':-d' => '<img src=\'gfx/smilie.laugh.gif\'>'
    );
   
    return strtr($txt, $trans);
}

men hvordan kan jeg lave den således at den ikke smider en smilie ind midt i et link??

eks. ftp://user:pass@test.dk - her kommer en smilie mellem user:pass
Avatar billede bojo Nybegynder
24. oktober 2004 - 19:08 #1
hvad med at sætte " "  før og efter

function txt2smilies($txt)
{
    $trans = array(
        ' :) ' => '<img src=\'gfx/smilie.smile.gif\'>',
        ' :-) ' => '<img src=\'gfx/smilie.smile.gif\'>',
        ' ;) ' => '<img src=\'gfx/smilie.wink.gif\'>',

        osv
    );
   
    return strtr($txt, $trans);
}
Avatar billede sitzz Nybegynder
24. oktober 2004 - 19:10 #2
så skal der jo også " " omkring dine <img> tags
Avatar billede supermand69 Nybegynder
24. oktober 2004 - 19:13 #3
jamen hvis en smilie så enten er i starten eller i slutningen af en string bliver den jo ikke ændret? :(
Avatar billede supermand69 Nybegynder
24. oktober 2004 - 19:14 #4
kan det ikke laves med noget reg??
Avatar billede bojo Nybegynder
24. oktober 2004 - 19:22 #5
hmmmm - ikke testet

function parsesmileys($message) {
    $smiley = array(
        "/\:\)/si" => "<img src='/smiley/smile.gif'>",
        "/\;\)/si" => "<img src='/smiley/wink.gif'>",
        "/\:\(/si" => "<img src='/smiley/sad.gif'>",
        "/\:\|/si" => "<img src='/smiley/frown.gif'>",
        "/\:o/si" => "<img src='/smiley/shock.gif'>",
        "/\:p/si" => "<img src='/smiley/pfft.gif'>",
        "/b\)/si" => "<img src='/smiley/cool.gif'>",
        "/\:d/si" => "<img src='/smiley/grin.gif'>",
        "/\:@/si" => "<img src='/smiley/angry.gif'>"
    );
    $message = preg_replace($smiley, $smiley_img, $message);
    return $message;
}
Avatar billede bojo Nybegynder
24. oktober 2004 - 19:25 #6
næææ - nu er den testet og dur ikke :-(
Avatar billede supermand69 Nybegynder
24. oktober 2004 - 19:26 #7
hvad gør /s ??
Avatar billede bojo Nybegynder
24. oktober 2004 - 19:29 #8
Den gør så . også tager nl med, så den er faktisk overflødig her ( en rest )

http://dk2.php.net/manual/da/reference.pcre.pattern.modifiers.php
Avatar billede supermand69 Nybegynder
24. oktober 2004 - 19:31 #9
gider du lige uddybe? :)
Avatar billede supermand69 Nybegynder
24. oktober 2004 - 19:33 #10
altså . er ALLE chars?
Avatar billede bojo Nybegynder
24. oktober 2004 - 19:55 #11
Avatar billede supermand69 Nybegynder
26. oktober 2004 - 15:21 #12
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester