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