Bug #73948 [Com]: Preg_match_all should return NULLs on trailing optional capture groups.

From: Date: Sat, 09 Jun 2018 22:51:19 +0000
Subject: Bug #73948 [Com]: Preg_match_all should return NULLs on trailing optional capture groups.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-215574@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=73948&edit=1 ID: 73948 Comment by: php at tecnopolis dot ca Reported by: tomasyorke at hotmail dot com Summary: Preg_match_all should return NULLs on trailing optional capture groups. Status: Analyzed Type: Bug Package: PCRE related Operating System: Windows 7 PHP Version: 7.0.14 Block user comment: N Private report: N New Comment: For those stuck on older PHP's, I'm wondering if the following is sufficient to work around this bug? $pattern.='(.??)'; preg_match($pattern,$haystack,$matches); array_pop($matches); I can't yet find any instance where the fairly innocuous (.??) could possibly cause a problem, it should match in all cases, when there's chars left or not, and being non-greedy will not eat earlier matches' chars. Previous Comments: ------------------------------------------------------------------------ [2018-04-14 15:08:34] nikic@php.net @requinix: That's impossible for BC reasons. I agree with @cmb that this should only be done for PREG_UNMATCHED_AS_NULL. ------------------------------------------------------------------------ [2018-04-14 14:47:18] requinix@php.net The filling should happen with or without PREG_UNMATCHED_AS_NULL. What it should control whether the filler is NULLs or empty strings. ------------------------------------------------------------------------ [2018-04-14 14:42:46] cmb@php.net Since we now have PREG_UNMATCHED_AS_NULL, the solution appears to be straight forward: fill up NULL values at the end, only if PREG_UNMATCHED_AS_NULL is used. Since this option is only available as of PHP 7.2.0, the resulting BC break seems to be acceptable. ------------------------------------------------------------------------ [2018-04-14 14:39:07] cmb@php.net Related To: Bug #76221 ------------------------------------------------------------------------ [2017-01-23 18:31:19] cmb@php.net > But why would you need an RFC for a bugfix? An RFC might be over the top, but at least a PR to get some attention appears to be appropriate. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=73948 -- Edit this bug report at https://bugs.php.net/bug.php?id=73948&edit=1

« previous php.bugs (#215574) next »