Re: [DISCUSSION] Validating regex pattern
Hi,
> Historically, PHP supported three regex engines (POSIX, PCRE, Oniguruma). The POSIX engine was
> dropped in PHP 7.0 and there is a draft RFC to drop support for Oniguruma [1], however, that still
> means that at this time PHP supports two different regex engines, which each have their own criteria
> for when a regex is a valid pattern, and for Oniguruma supports a multitude of regex dialects [2].
I wasn't aware of that. Thanks for the info!
> It also makes the FILTER_VALIDATE_REGEX_PATTERN flag highly ambiguous as it is
> unclear against which engine/dialect the regex would be validated.
Indeed, the multi-engine "issue" makes it clear that it would be ambiguous.
> Maybe the error code flags returned via preg_last_error() [4] should be made more
> specific to allow for detecting when a regex function failed due to an error in the regex.
> Maybe the extensions should get a "throw on invalid regex" option, either via an ini
> flag, a new function parameter or via an existing function like mb_regex_set_options().
I like the first solution, I like the second one even more. It would
be aligned with JSON_THROW_ON_ERROR.
> I'm not sure what the best solution is, but going with an illogical solution just to try
> and avoid the RFC process is not the way to go IMO.
The purpose isn't to avoid the RFC process, I'll write one if
necessary. I just want to gather opinions and deduct if it's necessary
:)
— Alexandre Daubois
Thread (11 messages)