kostenloser Webspace werbefrei: lima-city


Textstelle mit Grafik ersetzen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    v**********s

    Hallo!

    Ich wollte mal wissen, wie ich machen kann, dass auf einer Seite, wenn ich gewisse Begriffe schreibe diese durch eine Grafik ersetzt werden (?hnlich wie im MSN)...

    Also wenn ich z.B. ":D" im Sourcecode schreibe, sollte dies z.B. durch ein ":biggrin:" bei der Anzeige der Seite ersetzt werden...

    Ich denke man muss da irgendwie ne Datenbank machen und dort die Grafiken mit dem zu ersetzenden Text abspeichern und dann?

    Kennt jemand ein Tut?

    Danke schon mal f?r eure Hilf!

    Pascal

    Beitrag ge?ndert am 12.03.2006 16:55 von valvefriends
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    $string=':D';
    $string=str_replace(':D','<img src="">',$string);
    
    echo $string



    So sollte es gehen.
  4. c****4

    nicht so?

    $string=':D';
    $string=str_replace(':D','<img src="">',$string);


    echo $string;


    ???
    ich w?rds so machen

    Beitrag ge?ndert am 12.03.2006 17:03 von ct2004
  5. Autor dieses Themas

    v**********s

    Danke f?r eure schnellen Antworten, und wo muss ich das jetzt speichern? In einer PHP-Datei und die dann includen? Brauche ich also keine Datenbank?
  6. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    valvefriends schrieb:
    Danke f?r eure schnellen Antworten, und wo muss ich das jetzt speichern? In einer PHP-Datei und die dann includen? Brauche ich also keine Datenbank?


    Entweder in seperater PHP-Datei und includen oder in jedes Script schreiben, in dem :D durch ein Bild erstetzt werden soll. Mit der Funktion str_replace() ersetzt du ja deine Zeichenkette (:D) durch das Bild (<img src="">).
  7. s*e

    du kannst dir 'ne sch?ne funktion daraus schreiben, z.b.:

    function replaceSmilies($s)
    {
     $codes = array(":D", ":)");
     $replace = array("img1", "img2");
     for ($i = 0; $i < count($codes); $i++)
      $s = str_replace($codes[$i], "<img src=\"".replace[$i]."\" alt=\"".$codes[$i]."\" />";
     return $s;
    }


    und jeden text, bei dem du die smilies ersetzen willst, musst du nun eben mit
    replaceSmilies("Foo Bar, some more text :)");

    oder in der kurzform
    <?=replaceSmilies("Foo Bar, some more text :)")?>
    aufrufen.

    mfg, SIE
  8. Autor dieses Themas

    v**********s

    Aber das wird dann irgendwie gar nicht ersetzt wenn ich ":D" schreibe, bleibt es ":D" und wird nicht ":biggrin:"... nur wenn ich anstatt ":D" im Sourcecode "<? echo $string; ?>" hinschreibe klappts...

    @sie: da sagt er mit dann 'error on line 17', also irgendwo hier '$s = str_replace($codes[$i], "<img src=\"".replace[$i]."\" alt=\"".$codes[$i]."\" />";
    '...

    Beitrag ge?ndert am 12.03.2006 17:34 von valvefriends
  9. s*e


    @sie: da sagt er mit dann 'error on line 17', also irgendwo hier '$s = str_replace($codes[$i], "<img src=\"".replace[$i]."\" alt=\"".$codes[$i]."\" />";
    '...


    jep, haben sich zwei kleine fehlerchen eingeschlichen: es muss $replace[$i] hei?en (ich find's nervig, variablen in php immer mit einem dollar-symbol zu beginnen...) sowie eine fehlende schlie?ende klammer am ende der zeile, also vor dem semikolon.
  10. Autor dieses Themas

    v**********s

    sowie eine fehlende schlie?ende klammer am ende der zeile, also vor dem semikolon.


    Wo soll die Klammer hin? Nach dem Semikolon... was is den des?

    Ich kappier die anwendung noch nicht ganz. Ist das so richtig:

    Ich pantsche die Funktion in den Header... und was muss ich dann mit dem hier machen?

    replaceSmilies("Foo Bar, some more text :)");


    Beitrag ge?ndert am 12.03.2006 18:10 von valvefriends
  11. s*e

    ein semikolon ist ein sog. "strichpunkt". die fehlerhafte zeile m?sste also so aussehen:
    $s = str_replace($codes[$i], "<img src=\"".$replace[$i]."\" alt=\"".$codes[$i]."\" />");


    Die funktion setzt du irgendwo am beginn der seite hin (kann aber auch am ende stehen, bleibt dir ?berlassen) oder du packst sie in eine externe datei und bindest diese ?ber include oder require (am besten include_once oder require_once) ein.

    die Funktion muss dann dort aufgerufen werden, wo du den text ersetzt haben willst. nehmen wir mal an, du hast ein g?stebuch und der eintrag, der ausgegeben werden soll, befindet sich in der variablen $entry. Normalerweise w?rdest du den test dann folgenderma?en ausgeben (nat?rlich nachdem du vorher html und co. ausgefiltert hast):
    echo $entry;


    um die smilies nun aber zu ersetzen, musst du folgenderma?en den eintrag ausgeben:
    echo replaceSmilies($entry);


    mgf, SIE

    PS: In der funktion solltest du die beiden array anpassen. das erste enth?llt die codes, die ersetzbar sein sollen, das zweite die bilder, die als ersatz angezeigt werden sollen.
  12. Autor dieses Themas

    v**********s

    Oke, danke f?r die ausf?hrliche Antwort :biggrin:!

    Aber irgendetwas an der ber?chtigten Linie 17 stimmt immer noch nicht, schau mal:

    Warning: Wrong parameter count for str_replace() in pfad_zur_datei\aboutme.php on line 17

    Darf ich eigentlich keine HTML-Befehle mit einbeziehen, bei dem Text bei dem er die Strings ersetzten soll? Ich dachte, ich k?nnte einfach zu oberst den Befehl auf und zu unterst wieder zu machen... geht aber irgendwie nicht...

    Beitrag ge?ndert am 12.03.2006 18:57 von valvefriends
  13. c*********c

    str_replace() ben?tigt drei Parameter. Siehe http://de.php.net/manual/de/function.str-replace.php


    Somit m?sste der Befehl ungef?hr so aussehen:

    $s = str_replace($codes[$i], "<img src=\"".$replace[$i]."\" alt=\"".$codes[$i]."\" />", $zeichenkette);
  14. Autor dieses Themas

    v**********s

    Und wie m?sste diese '$zeichenkette' heissen? Sry, ich habe keine Ahnung von PHP, habe es mit '$s' versucht und mit '$replacesmilies', mit beiden ging's nicht...
  15. c*********c



    valvefriends schrieb:
    Und wie m?sste diese '$zeichenkette' heissen? Sry, ich habe keine Ahnung von PHP, habe es mit '$s' versucht und mit '$replacesmilies', mit beiden ging's nicht...


    Wenn Du die Funktion von sie benutzt, muss $s als letzter Parameter angegeben werden. Der Aufruf erfolgt durch replaceSmilies("Text, der nach Smilies durchk?mmt werden soll")
  16. Autor dieses Themas

    v**********s

    Das will bei mir einfach nich, ich habe es jetzt so gemacht (beispiel.php):

    <html>
    <head>
    <title>Replace Smilies</title>
    <?

    function replaceSmilies($s)

    {

    $codes = array(";)", ":)");

    $replace = array("img/wink.gif", "img2");

    for ($i = 0; $i < count($codes); $i++)

    $s = str_replace($codes[$i], "<img src=\"".$replace[$i]."\" alt=\"".$codes[$i]."\" />", $s);

    return $s;

    }

    ?>
    </head>
    <body>
    <?
    replaceSmilies("Text, welcher zu einem Smilie werden sollte: ;) !")
    ?>
    </body>
    </html>

    Was ist an dem noch nicht richtig? Es gibt zwar keine Fehlermeldung, aber der Text wird gar nicht mehr angezeigt...
  17. s*e

    es muss
    <?
    echo replaceSmilies("Text, welcher zu einem Smilie werden sollte: ;) !");
    ?>
    oder
    <?=replaceSmilies("Text, welcher zu einem Smilie werden sollte: ;) !")?>
    hei?en, sonst ersetzt die funktion zwar, aber zeigt eben nichts an :)
  18. 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!