phpbar.de logo

Mailinglisten-Archive

[php] Smilies durch Bilder ersetzen

[php] Smilies durch Bilder ersetzen

"Sebastian \"Marduk\" Pölsterl" marduk at k-d-w.org
Mon Mar 22 16:53:15 CET 2004


Hallo!

Der Sachverhalt sieht folgendermaßen aus:
Dem Benutzer ist es möglich Smilies selbst einzutragen (werden in DB 
gespeichert) nun sollen die Smilies (zB ':D') mit Bildern ersetzt werden.
Ich hab das bis jetzt mal mit preg_replace versucht, allerdings muss man 
ja vorher noch zeichen wie ],[,?,* etc. mit einem \ versehen, da die 
sonst den preg_replace Befehl stören. Bei mit sieht das so aus:

<snip>
$query = $db->query("SELECT * FROM nm_smilies ORDER BY shortcut DESC");
   while($row = $db->fetch_array($query))
   {
     $path = $config["scripturl"]."/images/smilies/$row[url]";
     $size = @getimagesize($path);
     $input .= " ";
	
     $bad_pattern = array("/(\\\)/",
						 "/(\[)/",
                          "/(\])/",
						 "/(\()/",
                          "/(\))/",
                          "/(\{)/",
                          "/(\})/",
                          "/(\/)/",
                          "/(\^)/",
						 "/(\.)/",
                          "/(\|)/",
                          "/(\*)/",
                          "/(\+)/",
						 "/(\?)/");

	$row["shortcut"] = preg_replace($bad_pattern,"\\\\$1",$row["shortcut"]);

     $input = preg_replace("/(".$row["shortcut"].")[^\/]/", "<img 
src=\"$path\" $size[3] alt=\"$row[description]\" border=\"0\" />", $input);
   }
</snip>

Mein Problem ist jetzt, dass diese Methode SEHR zeitaufwendig ist (ohne 
0.2s, mit >5s).

Was kann man daran also noch besser machen?
Freue mich über jede Anregung!

Gruß
Sebastian Pölsterl

php::bar PHP Wiki   -   Listenarchive