Smilie Script...

Flex

(aka Felix Jacobi)
So, ich bin grad dran ein SmilieScript zu schreiben... Man beachte die Uhrzeit und meinen Alkoholeinfluss, wahrscheinlich kriege ich deshalb nichts hin ;)

Die Sache ist halt die, ich will sämtlichen Text, in der die File includet wird, mit Smilies zuhauen, sprich also wenn der Code stimmt...
Also arbeite ich mit str_replace (hoffe ich ^^)

Die MySQL Tabelle...
PHP:
CREATE TABLE smilies (
  smid int(5) NOT NULL auto_increment,
  Name varchar(20) NOT NULL default '',
  Code varchar(30) NOT NULL default '',
  url text NOT NULL,
  PRIMARY KEY  (smid)
);
Die Smilie.php
PHP:
<?
include("connect.inc.php");

$get = mysql_query("SELECT * FROM smilies ORDER BY smid");

while($row = mysql_fetch_array($get)) {
	str_replace("$row['Code']","<IMG SRC='".$row['url']."' ALT='".$row['Code']."'>");
}
?>

Ich weiß sowieso, das der str_replace Befehl komplett falsch mit Variablen zugehauen ist, aber korrigiert das doch mal bitte, ich kriegs nimmer hin ^^
 
also:

das was du machen möchtest ist glaube ich zB das hier:
gästebucheintrag der aus einem mysql-table ausgelsen wird.
und dabei gewisse zeichen wie :-) oder ;-) in grafische smilies umwandelt:

der mysql-dumb:
Code:
create table gaestebuch (id INT AUTO_INCREMENT PRIMARY KEY, eintrag TEXT);
dazu das script zum auslesen:
PHP:
$auslesen=mysql_query("SELECT * FROM gaestebuch ORDER BY id DESC");
while ($ausgabe=mysql_fetch_array($auslesen)) {
include ("umwandeln.php");
echo $ausgabe[1];
}

und jetzt die umwandeln.php
PHP:
<?php
$ausgabe[1]=str_replace(":-)", "<img src="smile01.gif">", $ausgabe[1]);
$ausgabe[1]=str_replace(";-)", "<img src="smile02.gif">", $ausgabe[1]);
$ausgabe[1]=str_replace(":-(", "<img src="smile03.gif">", $ausgabe[1]);
?>

usw,

vielleicht hilft es dir ja, denn ich finde es ist unnötig für die smilies einen eigenen mysql-table anzulegen
aber wie du willst
greets daIllu ;-)
 
So, nun bin ich wieder einigermaßen nüchtern...
So, ich weiß WIE es gemacht wird, aber ich möchte nicht für jeden Smilie den ich habe SELBER den str_replace schreiben, sondern diesen mit der WhileSchleife aus der MySQL DB auslesen...

Nun, zu den Gründen, es sind 976 Smilies... Wer das von Hand machen will, soll sich melden :p
 
Du hattest es ja schon fast richtig, Flexmex. Angenommen der Text, in dem die Smilies ersetzt werden sollen, steht in $message. Dann müsste das so funktionieren:
PHP:
<?
include("connect.inc.php");
$get = mysql_query("SELECT * FROM smilies ORDER BY smid");
while($row = mysql_fetch_array($get))
	$message = str_replace($row['Code'],"<img src='".$row['url']."' alt='".$row['Code']."'>", $message);
?>
Aber aufpassen: Die Smilies müssen schon in einer logisch überdachten Reihenfolge in der Datenbank stehen. Denn wenn es z.B. ein Smiley ':confused:' und ein Smiley ':)' gibt, sollte zuerst ':confused:' und dann erst ':)' ersetzt werden. Denn angenommen in deinem Text kommt dieser Teil vor: "...(ich kenn mich da gar nicht mehr aus :confused:)...", dann würde, wenn zuerst ':)', und dann ':confused:' ersetzt wird, das hier rauskommen: "...(ich kenn mich da gar nicht mehr aus :confused
smile.gif
..." Und das wollte der User ja bestimmt nicht so, oder? ;)
Also, da muss man schon etwas überlegen... was bei 976 Smilies schon zeitraubend sein kann... Viel Spaß ;)


reima
 
Das ist natürlich ein guter Einwand :)

Das Problem ist nur, ich will die Smilies Variablenübergreifend machen...
Also include ich die File einfach irgendwo und er soll den Text durch die Smilies ersetzen...

Geht das? :)
Wenn ja, wie? ^^
 

Neue Beiträge

Zurück