phpbar.de logo

Mailinglisten-Archive

[php] acronyme und abkürzungen aus DB

[php] acronyme und abkürzungen aus DB

Jörn Grube jg at team-spandau.de
Don Nov 15 17:38:37 CET 2007


Yannik Hampe schrieb:
> 
> Jörn Grube wrote:
>> Ich hab mal wieder ein Problem und brauch Denkhilfen :)
>> Mal vorweg: auf meinem Server läuft PHP 4.4.7 und daran kann ICH nichts 
>> ändern (Hosteurope ist der Hoster).
 >> [...]
>> Mir gehts eigentlich nur darum, wie ich möglichst schnell und ohne den 
>> Server zu sehr in die Knie zu zwingen an die Ersetzungen komme, wie ich 
>> dann ersetze und ausgebe ist mir klar. Hab schon auf diversen Seiten 
>> nach entsprechenden Klassen geguckt, aber nix gefunden.
> 
> Naja... Ich könnte mir vorstellen, dass dies am schnellsten wäre:
> $text ='ich bin ein text in dem was ersetzt werden soll';
> $db =...; //db-Link
> while ($row = $db->query('SELECT wort,replace FROM ...'))
> {
>    $worte[] =$row[0];
>    $neu[] ="<abbr ..>$row[0]</...>";
> }
> str_replace($worte, $neu, $text);
> 
> CPU mäßig sollte das sehr sparsam sein. Der Ramverbauch ist bei 1K 
> Wörtern dabei noch vertretbar gering.
> Du könntest allerdings nochmal was rausholen, wenn du die acronyme nicht 
> in einer DB, sondern in einer Datei speicherst. Am einfachsten wäre wohl 
> eine Datei mit einem Wort pro Zeile:
> ---- Datei Worte
> wort1
> wort2
> ...
> ---- Datei Ersatz
> <abbr ...>wort1</abbr>
> <abbr ...>wort2</abbr>
> ...
> 
> Dann kannst du per
> str_replace(file('Worte'),file('Ersatz'),$text);
> sehr einfach und schnell ersetzen. Solange es nur 1000 Wörter sind, 
> sollte die Methode vom RAM her keinen Stress machen. Dafür musst du 
> immer die beiden Dateien synchron halten. Aber ich gehe davon aus, dass 
> das kein Problem ist, da du die Dateien nicht ständig änderst. Du 
> solltest ggf. flock() verwenden.

Danke, damit sollte ich was anfangen können :)

LG aus Berlin Jörn

php::bar PHP Wiki   -   Listenarchive