Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Reguläre Ausdrücke
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Hinweise zur Optimierung




Reguläre Ausdrücke sind nicht nur in der Programmierung komplex. Auch die Umsetzung und Auswertung stellt für den PHP-Interpreter eine Herausforderung dar. Die Ausdrücke werden zwar kompiliert und dann erheblich schneller ausgeführt, komplexe Konstrukte mit langen Zeichenketten können dennoch spürbar Zeit in Anspruch nehmen und dies auch auf schnellen Rechnern. Eine Webanwendung ist kaum praktikabel, wenn ein regulärer Ausdruck alleine eine Sekunde zur Bearbeitung benötigt.

Einige Konstrukte benötigen aufgrund der internen Verarbeitung erheblich mehr oder weniger Zeit als andere. Die folgende Auflistung zeigt die wesentlichsten Unterschiede. Da sich oft mehrere Wege nach Rom finden lassen - sprich zum Ziel, existieren fast immer Alternativen, die Leitung eines Ausdrucks ohne Funktionseinbussen zu erhöhen.

. Es ist wesentlich effizienter eine Zeichenklassendefinition wie [abcd] zu nutzen, als eine Serie von Alternativen (a|b|c|d).
. Wenn die Option PCRE_DOTALL nicht erwünscht ist, kann alternativ ^.* gesetzt werden.
. Wenn eine Ausdruck mit .* beginnt und die Option PCRE_DOTALL gesetzt wurde, erkennt PHP, dass die Zeichenkette nur am Anfang stehen kann, und verankert sie implizit. Ist PCRE_DOTALL nicht gesetzt, kann diese Optimierung nicht aufgeführt werden.
. Generell hilft es dem Interpreter, wenn die Beschreibung so direkt wie möglicht erfolgt, implizite Annahmen werden oft erst erkannt, wenn der gesamt Ausdruck verarbeitet und ausgewertet wurde.
. Wenn Sie mehrere Varianten eines Ausdrucks haben und diesen in einer häufig durchlaufenen Schleife anordnen müssen, testen Sie die Abarbeitungszeit der Varianten und wählen Sie die Schnellste.
. Ausdrücke werden nicht weiter ausgewertet, wenn das Ergebnis feststeht. Bei der Abarbeitung sollte der wahrscheinlichste Fall also am weitesten links stehen.


 


Vertiefung zu reguläre Ausdrücke
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de