Smiley's als Bild in einem Guestbook anzeigen.

Lones_Wolf

Mitglied
Hallo alle miteinander, ich habe da ein kleines problem ich habe mir ein Guestbook selber geschrieben, es läuft dennoch nur über eine ".txt" datei, so und meine frage ist jetzt wie kann ich es möglich machen das, das guestbook mir meine smiley's richtig anzeigt und nicht nur so " : - ) " .

P.s. Hatte schon im Forum rum gegrasst, hatte auch schon erfolge doch leider keine richtigen.

Ich freu mich über jede hilfe.

Mit Freundlischen Grüßen

Lones_Wolf
 
Hier gibt es ein tutorial zu regular expressions. Mit diesen kannst du sowas ganz leicht bewerkstelligen. Beispiel
PHP:
$text = str_replace(": )","<img src=\"blub.jpg\" alt=\": )\" />",$text);
 
Und wenn du mal mehrere Smileys erseten willst dann kannst du das ganze mittels zwei Arrays machen!

PHP:
$smile[]=":)";
$grafik[]="<img src='images/s1.jpg'>";
$smile[]=":-)";
$grafik[]="<img src='images/s2.jpg'>";
...
$text = str_rerplace($smile, $grafik, $text);

Das ganze ist vielleicht besser, wenn du den Besucher Ladezeiten ersparen willst. Auch wenn diese wenigen Zeichen, die bei dieser Variante weniger sind, nicht sehr viel Performance bringen werden, so ist es doch ein Schritt zu einer schnelleren Homepage. ;-)
 
Verstehe das leider nicht so richtig.

Hallo der_maiki also dein beitrag hatt mir gut gefallen
Das ganze ist vielleicht besser, wenn du den Besucher Ladezeiten ersparen willst. Auch wenn diese wenigen Zeichen, die bei dieser Variante weniger sind, nicht sehr viel Performance bringen werden, so ist es doch ein Schritt zu einer schnelleren Homepage.

Doch leider verstehe ich das nicht ganz
z.B. wo muss ich diese zeilen einfügen und so weiter, also ich paste mal mein guestbook einstellungen

PHP:
<?php

// hier holen wir die mit <form> gesendeten Daten
$name = $HTTP_POST_VARS['name'];
$email = $HTTP_POST_VARS['email'];
$text = $HTTP_POST_VARS['text'];

// wurde auf den submit-button gedrückt?
if($submit)

{
// hier wird geprüft ob email, name & text ordnungsgemäß ausgefüllt sind.
if(($email == "") || ($name == "") || ($text == ""))
echo "<b>Fehlgeschlagen! Bitte alle Felder ausfüllen!</b>";

// wenn alle Felder ausgefüllt sind, gehts hier weiter...
else
{

// Variable X wird auf null gesetzt
$x = 0;

$dateiname = "gbook.txt";


// hier wird die Datei 'gbook.txt' geöffnet um 
// die 'vorhandenen' Einträge zu lesen.
// 'R' bedeutet READ
$datei = fopen($dateiname, "r");

// mit 'WHILE (!feof($datei))' wird die Datei Zeile für Zeile 
// ausgelesen und in die Variable '$saved[x]' gespeichert!
// Das wird gebraucht um die neuesten Einträge OBEN anzuzeigen!
while (!feof($datei)) {
$x++;
$saved[$x] = fgets($datei, 1024);

}
// Datum und Uhrzeit ermitteln
$datum = date("d.m.Y");
$zeit = date("H:i");

// Hier wird in die Datei 'gbook.txt' geschrieben. 
// 'W' bedeutet WRITE
$datei=fopen("gbook.txt", "w");

// Strip_tags entfernt HTML- & PHP-Tags aus der Nachricht
$text=strip_tags($text);

// Hier wird der neue Eintrag in die Datei geschrieben
fwrite($datei,"<table border=0 width=500 bgcolor=000000 cellspacing=1 cellpadding=3><tr><td bgcolor=ffffff><a href=\"mailto:$email\"><b>$name</b></a> schrieb am $datum um $zeit Uhr</td></tr><tr><td bgcolor=white>$text</font></td></tr></table>\n");

// ...und danach die vorher ausgelesenen Zeilen hinten dran schreiben..
for ($i=1;$i <= $x; $i++) {
fwrite($datei, "$saved[$i]");
}
// Datei schliessen
fclose($datei);
}
}


// die Einträge auslesen & anzeigen

$dateiname = "gbook.txt";
$datei = fopen($dateiname, "r");
fpassthru($datei);
?>

Ihr könnt euch ja mal ein Bild von meiner Seite machen

Hier

Ich hoffe da kann mir jemand weiter helfen.

Mit Freundlischen grüßen

Lones_Wolf
 
Zuletzt bearbeitet:
Randar: Dein Codebeispiel hat nichts mit regulären Ausdrücken zu tun...

der_maiki: Die Ausführungsgeschwindigkeit hängt nicht unbedingt von der Anzahl der Zeichen im Script ab... und auch sonst müsstest du erst mal begründen, warum die Methode mit den Arrays schneller sein sollte. Eleganter ist sie aber allemal :)
 
Zurück