Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#108

Re: PHP Inspection Unit

  Alt 27. Mär 2005, 11:54
Hi pr0g,

Danke fürs Fehlersuchen.

Also der Fehler mit den define()s ist ja äußerst seltsam, sollte aber relativ einfach zu beheben sein - hoffe ich *g*.

Bei dem Include in der letzten Zeile habe ich lediglich vergessen einmal zu prüfen, ob der String länger ist als 0 Zeichen bevor ich versuche auf ein Zeichen zuzugreifen.

Aber der letzte Fehler hats wohl in sich. Man kann ihn, soweit ich das sehe, einfach durch das Hinzufügen einer Word Boundary (\b) Assertion nach dem "(?<!\$)" beheben, jedoch vergrößerte sich die Parsing-Zeit in meiner Testdatei (ca. 750 KB) von 2,7 Sek auf 3,3 Sek, was ich nicht besonders schön finde. Ich versuche das Problem noch anders in den Griff zu kriegen, aber wenns nicht anders geht, werde ich das wohl so mit dem \b machen.

Edit: Hab doch noch ne sehr einfache Lösung gefunden. Die Assertion (?<!\$) muss nur so angepasst werden, dass weder ein Alphanummerisches Zeichen, ein Unterstrich, noch ein $ oder ein sonstiges ASCII Zeichen, das einem Variablenbezeichner entsprechen kann, vor dem Match ist. Also einfach: (?<![\$\w\x7f-\xff])
In meinen Versuchen klappt das bisher sehr gut, also denke ich, mache ich das so. Bei dieser Variante gibts auch keine spürbaren Geschwindigkeitseinbußen

Wenn alles glatt geht, gibts heute eine neue bzw. eine aktualisierte Version.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat