Missing )

Die Fehlermeldung Warning: [FUNCTION] Compilation failed: missing ) at offset [OFFSET] in [FILENAME] on line [LINE] »Klammer ) fehlt« tritt auf, wenn eine öffnende Klammer verwendet wurde, dazu aber keine passende schließende Klammer gefunden wurde. An Position [OFFSET] befindet sich für gewöhnlich das letzte Zeichen des Suchmusters, da spätestens an dieser Stelle die schließende Klammer stehen müsste. Auch hier kann es vorkommen, dass die öffnende Klammer als reiner Text und nicht als Metazeichen gelten sollte und versehentlich nicht maskiert wurde.

Beispiele

Bei diesem Code <?PHP preg_match('#dies(.*sein#i''Dies könnte ein Text sein'); ?> tritt der Fehler auf, da - wie man sieht - die schließende Klammer fehlt.

Auch im folgenden, sehr ähnlichen Beispiel tritt dieser Fehler auch auf <?PHP preg_match('#d(i(es).*(k).*#i''Dies könnte ein Text sein'); ?> da hier zwar einige schließende Klammern definiert sind, nur leider nicht genug, um alle öffnenden zu schließen.

Fehlerbeseitigung

Bei der Definition von Unterausdrücken definiert man am besten von Anfang an zuerst beide Klammern und fügt dann erst das Pattern hinzu. Soll eine Klammer als normaler Text behandelt werden, muss sie maskiert werden.

Verwandte Themen
Kapitelnavigation