kostenloser Webspace werbefrei: lima-city


Smilies anzeigen auf meiner Homepage

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c********k

    Hallo,
    ich habe auf meiner Homepage eine tag/kommentar">Kommentar Funktion, dort soll (so wie hier) Smileys einfügen können.
    Bisher geht dies bei mir nur so:http://cybercrack.de.cool/Kommentare/Kommentare.php
    Aber dort Arbeite ich mit den Radio Buttons, aber wie kann ich es wie Hier machen, dass wenn in der Variable zwei Doppelpunkte und dazwischen den Namen des Smiley. (Also :Smileyname:).
    Danke schon einmal im Voraus.:thumb::wave:

    Beitrag zuletzt geändert: 24.3.2016 18:33:18 von cybercrack
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Du speicherst den Kommentar wie gewohnt.
    Nur deinen Code zur Ausgabe musst du anpassen:
    $Ausgabetext=str_replace(":smiley:","<img src="Smiley.png">",$Kommentar);

    Das Einfügen von Smileys kannst du angenehm mit JavaScript erledigen.

    Umgesetzt sieht es so aus:
    $Smiley_Code=array(":Smiley1:",":Smiley2:");
    $Smiley_URL=array("Smiley1.png","Smiley2.png");
    $Ausgabetext=str_replace($Smiley_Code,"<img src='".$Smiley_URL."'>",$Kommentar);


    Sollten die Bilddateien den gleichen Namen haben, wie die Bezeichnung, könntest du es mit RegExp noch einfacher lösen.
  4. Autor dieses Themas

    c********k

    Bei mir kommt dann nur diese Fehler Meldung "Array to string conversion" und in der Text Datei wird stat der URL Array ausgegeben.
  5. Oh, verzeihung. Ich wusste nicht, dass das so nicht geht. Also musst du die Array im vorraus anpassen:
    http://test42test.lima-city.de/Smiley.php
    <?php
    $Kommentar=$_GET["Kommentar"];
    if ($Kommentar==""){
        $Kommentar="Dein Kommentar :Smiley1:";
    }
    ?>
    <h1>Smiley Test</h1>
    Teste :Smiley1: und :Smiley2:<br>
    <form method="get">     
    <textarea name="Kommentar"><?php echo($Kommentar);?></textarea><br>
    <input type="submit" value="Absenden">
    </form>
    <?php
    $Smiley_Code=array(":Smiley1:",":Smiley2:");
    $Smiley_URL=array("smiley1.gif","smiley2.gif");
    for ($index=0;$index<count($Smiley_URL);$index++){
        $Smiley_URL[$index]="<img src='".$Smiley_URL[$index]."'>";
    }
    $Ausgabetext=str_replace($Smiley_Code,$Smiley_URL,$Kommentar);
    echo("Aus <br> $Kommentar <br><br> wird:<br>");
    echo($Ausgabetext);
    echo("<hr>");
    ?>
  6. Autor dieses Themas

    c********k

    Danke es klappt so gut wie:wave:, aber in dem Textdokument, wo die Kommetare gespeichert werden wird nicht so
    <img src='/Style/Smylie1.gif'> ausgegeben sondern so: &lt;img src='/Style/Smylie1.gif'&gt; und so funktioniert es dann nicht, also es wird der Befehl angezeigt aber kein Bild: Wie kann ich es so ändern, dass in der Text Datei gleich die <>
    angezeigt werden?? .

    $Smiley_URL[$index]="<img src='".$Smiley_URL[$index]."'>";

  7. Vermutlich machst du danach irgendwo ein htmlentites() oder htmlspecialchars().
    Das ersetzen gegen HTML musst du natürlich danach machen.
  8. Autor dieses Themas

    c********k

    Vielen, vielen, vielen Dank :wave::prost:.
    Es hat geklappt.:biggrin:


    Ich habe danach noch ein htmlspecialchars gehabt.
  9. Da ich das Passwort nur auf meinem PC eingebe, gibt's nun einen Account für unterwegs.

    Bitte beachte, was in meinem ersten Post steht, bzw. wie die Umsetzung im zweiten ist:

    Speicher die Kommentare wie gewohnt. Mein Code kommt erst beim Anzeigen in Verwendung. Dadurch ist es möglich, den Kommentar nachträglich zu ändern (niemamd möchte img-Tags in seinem Edit-Fenster sehen).
    Zudem gibt's minimal mehr Speicher.

    Wenn es dir um die Performance geht, ist natürlich deine aktuelle Version besser.
    Verbessern könntest du bei mir jedoch, indem du die for-Schleife weg lässt und stattdessen in die Array direkt den img-Tag dazu schreibst.
  10. Autor dieses Themas

    c********k

    Die for schleife habe ich jetzt raus gemacht.:biggrin:
    Eine Frage:confused:habe ich jetzt noch. Wie kann ich es machen, dass wenn ich auf den Smiley tippe die :Smyliename: automatisch in dem Textfenster eingefügt wird?
  11. Wenn dir das Ende des Textes ausreicht, genügt eine Zeile:
    function Smiley(Text){document.getElementById("TextfeldID").innerHTML += Text;}

    Die Smileys zum anklicken veränderst du so:
    <img src="URL" onClick="Smiley(':Smileyname')">


    Möchtest du es am Cursor einfügen, brauchst du etwas mehr Code. Du liest die Cursorposition aus.
    Dann teilst du den bestehenden Text an dieser Stelle und fügst dazwischen das Smiley ein.
  12. Autor dieses Themas

    c********k

    Vielen Dank es klappt jetzt so wie ich es wil:biggrin::prost:
  13. test42test schrieb:
    Oh, verzeihung. Ich wusste nicht, dass das so nicht geht. Also musst du die Array im vorraus anpassen:
    http://test42test.lima-city.de/Smiley.php
    <?php
    $Kommentar=$_GET["Kommentar"];
    if ($Kommentar==""){
        $Kommentar="Dein Kommentar :Smiley1:";
    }
    ?>
    <h1>Smiley Test</h1>
    Teste :Smiley1: und :Smiley2:<br>
    <form method="get">     
    <textarea name="Kommentar"><?php echo($Kommentar);?></textarea><br>
    <input type="submit" value="Absenden">
    </form>
    <?php
    $Smiley_Code=array(":Smiley1:",":Smiley2:");
    $Smiley_URL=array("smiley1.gif","smiley2.gif");
    for ($index=0;$index<count($Smiley_URL);$index++){
        $Smiley_URL[$index]="<img src='".$Smiley_URL[$index]."'>";
    }
    $Ausgabetext=str_replace($Smiley_Code,$Smiley_URL,$Kommentar);
    echo("Aus <br> $Kommentar <br><br> wird:<br>");
    echo($Ausgabetext);
    echo("<hr>");
    ?>

    Gute Idee, ich hätte dazu noch einfach FA http://fontawesome.io Icons benutzt

    Beitrag zuletzt geändert: 12.6.2016 8:32:27 von mpcity
  14. 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!