Mailinglisten-Archive |
Sebastian "Marduk" Pölsterl wrote: > 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 vielleicht hilft preg_quote() ?
php::bar PHP Wiki - Listenarchive