Mailinglisten-Archive |
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