Smilies anzeigen auf meiner Homepage
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anklicken
anpassen
array
befehl
code
dank
datei
fenster
http
index
kommentar
radio
schleife
speichern
tag
test
text
url
verwendung
verzeihung
-
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.
Beitrag zuletzt geändert: 24.3.2016 18:33:18 von cybercrack -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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. -
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>"); ?>
-
Danke es klappt so gut wie, aber in dem Textdokument, wo die Kommetare gespeichert werden wird nicht so
<img src='/Style/Smylie1.gif'> ausgegeben sondern so: <img src='/Style/Smylie1.gif'> 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]."'>";
-
Vermutlich machst du danach irgendwo ein htmlentites() oder htmlspecialchars().
Das ersetzen gegen HTML musst du natürlich danach machen. -
Vielen, vielen, vielen Dank .
Es hat geklappt.
Ich habe danach noch ein htmlspecialchars gehabt. -
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. -
Die for schleife habe ich jetzt raus gemacht.
Eine Fragehabe ich jetzt noch. Wie kann ich es machen, dass wenn ich auf den Smiley tippe die :Smyliename: automatisch in dem Textfenster eingefügt wird?
-
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. -
Vielen Dank es klappt jetzt so wie ich es wil
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage