Bug #73948 [Com]: Preg_match_all should return NULLs on trailing optional capture groups.
| From: | php at tecnopolis dot ca | 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