Avatar billede dimsen Nybegynder
26. november 2004 - 13:05 Der er 11 kommentarer og
1 løsning

Lille problem med smiley's

Davs eksperter.

I et script jeg har fundet er den nedenstående kode inkluderet i, der er dog bare det problem at når man så skriver og laver en smiley forsøger den at linke til xxx.gif=align... og derved ikke til selve smiley'en

Jeg har forsøgt mig dog uden held.

Her er koden til det omtalte stykke af scriptet:

// Function: parseBBCode
//  -> Returns: String
//  -> Comment: Not using an array like parseSmileys because there is a mixture of
//              str_replace and eregi_replace
function parseBBCode($strText)
{
        $strText = str_replace("[sub]","<sub>",$strText);
        $strText = str_replace("[/sub]","</sub>",$strText);
        $strText = str_replace("[sup]","<sup>",$strText);
        $strText = str_replace("[/sup]","</sup>",$strText);
        $strText = str_replace("[s]","<s>",$strText);
        $strText = str_replace("[/s]","</s>",$strText);
        $strText = str_replace("","<b>",$strText);
        $strText = str_replace("
","</b>",$strText);
        $strText = str_replace("","<i>",$strText);
        $strText = str_replace("
","</i>",$strText);
        $strText = str_replace("","<u>",$strText);
        $strText = str_replace("
","</u>",$strText);
        $strText = str_replace("
  • ","<li>",$strText);
  •         $strText = str_replace("
      ","<ul>",$strText);
              $strText = str_replace("
    ","</ul>",$strText);
            $strText = str_replace("[code]","<table border=\"0\" align=\"center\" width=\"95%\" cellpadding=\"3\" cellspacing=\"1\"><tbody><tr><td id=\"smallcode\">CODE</td></tr><tr><td id=\"code\"><br>",$strText);
            $strText = str_replace("[/code]","</td></tr></tbody></table>",$strText);
            $strText = eregi_replace("\\[img]([^\\[]*)\\[/img\\]","<img src=\"\\1\">",$strText);
            $strText = eregi_replace("\\[email\\]([^\\[]*)\\[/email\\]", "<a href=\"mailto:\\1\">\\1</a>",$strText);
            $strText = eregi_replace("\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]", "<a href=\"mailto:\\1\">\\2</a>",$strText);
            $strText = eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]", "<a href=\"http://www.\\1\" target=\"_blank\">\\1</a>",$strText);
            $strText = eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=\"_blank\">\\1</a>",$strText);
            $strText = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=\"_blank\">\\2</a>",$strText);

            return $strText;
    }

    function parseSmileys($strText)
    {
            $rgEmoticons[] = array(":mellow:","mellow");
            $rgEmoticons[] = array(":huh:","huh.gif");
            $rgEmoticons[] = array("^_^","happy.gif");
            $rgEmoticons[] = array(":o", "ohmy.gif");
            $rgEmoticons[] = array(":P","ongue.gif");
            $rgEmoticons[] = array(":D","biggrin.gif");
            $rgEmoticons[] = array(":lol:","laugh.gif");
            $rgEmoticons[] = array("B)","cool.gif");
            $rgEmoticons[] = array(":rolleyes:","rolleyes.gif");
            $rgEmoticons[] = array("-_-","sleep.gif");
            $rgEmoticons[] = array("<_<","dry.gif");
            $rgEmoticons[] = array(":)","smile.gif");
            $rgEmoticons[] = array(":wub:","wub.gif");
            $rgEmoticons[] = array(":angry:","mad.gif");
            $rgEmoticons[] = array(":(","sad.gif");
            $rgEmoticons[] = array(":unsure:","unsure.gif");
            $rgEmoticons[] = array(":S","wacko.gif");
            $rgEmoticons[] = array("O_o","blink.gif");
            $rgEmoticons[] = array(":ph34r:","ph34r.gif");
            $rgEmoticons[] = array(";)","wink.gif");
            $rgEmoticons[] = array(":'(","crying.gif");
            $rgEmoticons[] = array(":$","blushing.gif");

            foreach ($rgEmoticons as $rgEmoticon)
            {
                    $strText = str_replace($rgEmoticon[0],"<img src=\"images/smileys/".$rgEmoticon[1]." align=\"absmiddle\">",$strText);
            }

            return $strText;
    }
    Avatar billede anhansen Nybegynder
    26. november 2004 - 13:08 #1
    er det ikke bare fordi du mangler et mellemrum?
    Avatar billede schaefner Juniormester
    26. november 2004 - 13:09 #2
    Er stien forkert eller hvad mener du?
    Avatar billede dimsen Nybegynder
    26. november 2004 - 13:10 #3
    Ja, tildels istedet for at linke til smiley.gif linker den til smiley.gif=align...
    Avatar billede dimsen Nybegynder
    26. november 2004 - 13:10 #4
    et mellemrum :-)?
    Avatar billede anhansen Nybegynder
    26. november 2004 - 13:11 #5
    Glem mit tror jeg... Det var lige en læsefejl fra min side... :-)
    Avatar billede dimsen Nybegynder
    26. november 2004 - 13:12 #6
    Bare iorden :-)
    Avatar billede anhansen Nybegynder
    26. november 2004 - 13:13 #7
    Du er sikker på at det ikke er en fejl i input til funktionen?
    Avatar billede dimsen Nybegynder
    26. november 2004 - 13:21 #8
    Jeg har ærlig talt ingen anelse :-). Er ikke den helt store phphaj desværre.
    Avatar billede anhansen Nybegynder
    26. november 2004 - 13:25 #9
    Jeg tænkte bare at hvis der stod noget der kunne tolkes som en smiley og så =align bagefter?

    Jeg ved det ikke - bare en tanke.

    Jeg smutter nu desværre - men held og lykke med det..
    Avatar billede hmortensen Nybegynder
    26. november 2004 - 14:20 #10
    Sådan her:
    $strText = str_replace($rgEmoticon[0],"<img src=\"images/smileys/".$rgEmoticon[1]."\" align=\"absmiddle\">",$strText);
    Avatar billede dimsen Nybegynder
    26. november 2004 - 14:36 #11
    Det virkede sørme, smider du ikke lige et svar :)?
    Avatar billede hmortensen Nybegynder
    26. november 2004 - 14:38 #12
    Ok :)
    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