kostenloser Webspace werbefrei: lima-city


Smiley Textsetzer

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    Hi Leutz,

    ich wollte grade ne Funktion schreiben, mit der ich Smileys in Texten, wie \":-)\" oder \":-<\" durch Bilder ersetzen kann, ohne für jedes einzelne Smiley ein str_replace() einbauen zu müssen. Habe dabei aber einige Probleme.

    Ich dachte mit zunächst mache ich ne Datei für alle Definitionen.

    // Def.Smile.php --->
    
    <?
    
    $Smile_Type[1] = \'8-o\';
    $Smile_Type[2] = \'%-)\';
    $Smile_Type[3] = \':-<\';
    $Smile_Type[4] = \':yes:\';
    ...
    
    $Smile_Addr[1] = \'smile/bigeek.gif\';
    $Smile_Addr[2] = \'smile/rolleyes.gif\';
    $Smile_Addr[3] = \'smile/mad.gif\';
    $Smile_Addr[4] = \'smile/yes.gif\';
    ...
    
    $Smile_Total = 12; // Sind insg. 12 Stück, aber ich hab die Listen ein bisschen gekürzt
    
    ?>
    
    //! Def.Smile.php <---


    Dann hab ich da die Datei, in der die Funktion vorhanden ist.

    // Func.Smile.php --->
    
    <?
    
    require(\'Def.Smile.php\');
    
        function smile($text)
        {
    
            for ($i=0; $i<=$Smile_Total; $i++) {
    
                $text = str_replace($Smile_Type[$i], \'<img src=\\\"\'.$Smile_Addr[$i].\'\\\" border=\\\"0\\\">\', $text);
            }
    
         return $text;
        }
    
    ?>
    
    //! Func.Smile.php <---


    und wenn ich nun einen Beispieltext damit versehe á la:

    echo smile(\'Hallo :-) Welt :-<\');


    Dann wird dieser Text ausgegeben, ohne sich im geringsten verändert zu haben. Und ich verstehe einfach nicht warum, könnt ihr mir da helfen ?

    Gruß
    VampireSilence
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. str_replace nimmt auch Arrays als \"Werte\", somit kannst du str_replace($Smile_Type,$Smile_Addr,$text) verwenden ohne die str_replace für jedes Element einzeln durchlaufen zu müssen.
  4. Autor dieses Themas

    vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    D.h. also ich kann mir die For-Schleife komplett sparen und mache einfach:

    // Func.Smile.php --->
    
    <?
    
    require(\'Def.Smile.php\');
    
        function smile($text)
        {
    
    
                $text = str_replace($Smile_Type, \'<img src=\\\"\'.$Smile_Addr.\'\\\" border=\\\"0\\\">\', $text);
    
    
         return $text;
        }
    
    ?>
    
    //! Func.Smile.php <---


    So ? Das wäre ja schon gleich wesentlich leichter !

    Gruß
    VampireSilence
  5. Ja, allerdings darfst du nicht vergessen die beiden Arrays in der Funktion verfügbar zu machen. Entweder definierst du sie direkt dort oder du bindest sie mit GLOBAL $array; in die Funktion ein.
  6. Autor dieses Themas

    vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    Danke, deine Vorschläge haben zum Erfolg geführt !

    Habe lediglich die For-Schleife doch beibehalten, weil alle Smileys die Adresse \"http://vampiresilence.lima-city.de/%5C%22Array%5C%22\" hatten.

    Und die Def.Smile.php ist nun innerhalb der smile()-Funktion via include() eingebunden. Nun geht es, danke !!

    Gruß
    VampireSilence


    Beitrag geändert: 31.5.2008 3:01:40 von vampiresilence
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!