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
- Der Backslash
- Fehlermeldungen
- Metazeichen
- PHP-Funktionen
- preg_grep()
- preg_match()
- preg_match_all()
- preg_replace()
- preg_replace_callback()
- preg_split()
- Unmatched parentheses
- Unterausdrücke
Kapitelnavigation
- Letzte Änderung: 08.01.2012, 12:31:18
- © 2003 - 2012 nophia web