Estoy tratando de configurar un servicio similar a rubular, pero con PHP como el idioma que usa la familia de funciones preg. Tomará una entrada regex, una cadena de prueba, y ejecutará preg_match()
.Captura de errores de compilación de expresiones regulares
¿Cómo puedo averiguar si se ha producido un error de compilación (por ejemplo, expresiones regulares no válidas) y, en caso afirmativo, cuál fue el error? Normalmente se tirará advertencias como:
Warning: preg_match() [function.preg-match]: Compilation failed: missing) at offset x in ****** on line y
pcre_last_error()
es totalmente inútil aquí, puesto que devolverá 0 (PREG_NO_ERROR
) si la expresión regular falla al compilar.
Una opción que estoy considerando es utilizar el almacenamiento en búfer de salida para capturar la advertencia, pero tiene que haber una manera mejor.
'error_get_last()' es lo suficientemente bueno :) – NullUserException