Ich versuche, einen Dienst ähnlich rubular einzurichten, aber mit PHP als Sprache, die die Preg-Funktionsfamilie verwendet. Es wird eine Eingabe-Regex, eine Testzeichenfolge und preg_match()
ausführen.Erfassen von Regex-Kompilierungsfehlern
Wie kann ich herausfinden, ob ein Kompilierungsfehler aufgetreten ist (zB: ungültige Regex), und wenn das der Fall ist, was war der Fehler? Normalerweise wird es Warnungen werfen wie:
Warning: preg_match() [function.preg-match]: Compilation failed: missing) at offset x in ****** on line y
pcre_last_error()
ist völlig nutzlos hier, da es 0 (PREG_NO_ERROR
) zurück, wenn die Regex zu kompilieren schlägt fehl.
Eine Option, die ich in Betracht ziehe, ist die Verwendung der Ausgangspufferung, um die Warnung zu erfassen, aber es muss einen besseren Weg geben.
'error_get_last()' ist gut genug :) – NullUserException