Edit report at http://bugs.php.net/bug.php?id=53238&edit=1
ID: 53238 Updated by: [email protected] Reported by: giovanni at giacobbi dot net Summary: Make third parameter of preg_match_all optional Status: Closed Type: Feature/Change Request Package: PCRE related Operating System: any PHP Version: 5.3.3 Assigned To: aharvey Block user comment: N New Comment: Good catch on the bracket. Fixed, and thanks. :) It probably wouldn't be hard to backport this to the 5.3 branch, but my inclination is to leave this only in trunk for now -- we're likely to have the first RC for 5.3.4 in less than two weeks, and I don't see this being important enough to shoehorn it into 5.3 to make that release in particular. We'll get some more testing on this (hopefully) in a 5.4 alpha fairly soon, too. I'm happy enough to have another look at this for 5.3 after 5.3.4 is done, though. Feel free to prod me via e-mail or the bug tracker if I forget. :) Previous Comments: ------------------------------------------------------------------------ [2010-11-05 15:00:59] giovanni at giacobbi dot net Hi aharvey, thank you for the extremely quick reaction. Two things: I think you misplaced the [, it's supposed to go in front of the comma: -/* {{{ proto int preg_match_all(string pattern, string subject, array &subpatterns [, int flags [, int offset]]) +/* {{{ proto int preg_match_all(string pattern, string subject, [array &subpatterns [, int flags [, int offset]]]) second thing is.. any chance to have this backported for 5.3.4? There is no BC break since it's a parameter that becomes optional. I understand if you want to keep all API changes for minor version, it's what I would do as well..only problem with PHP is that it has a too slow release cycle. Thank you anyway, I really appreciate your support. ------------------------------------------------------------------------ [2010-11-05 05:37:57] [email protected] This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. This has been implemented on trunk, and should be in 5.4. (Assuming that's what it's called.) ------------------------------------------------------------------------ [2010-11-05 05:37:29] [email protected] Automatic comment from SVN on behalf of aharvey Revision: http://svn.php.net/viewvc/?view=revision&revision=305097 Log: Implemented FR #53238 (Make third parameter of preg_match_all optional). ------------------------------------------------------------------------ [2010-11-03 19:32:23] giovanni at giacobbi dot net Description: ------------ I had to count the time a regular expression is in a string, and the correct way to do this is with the return value of preg_match_all() because preg_match() will always return either 0 or 1. The problem is that preg_match_all() enforces the third parameter. My request is to align the prototype of preg_match_all() to the one of preg_match(), i.e. making the third parameter optional. Test script: --------------- $cnt = preg_match_all('/<br\s*\/?>/i', "this<br/>my<br>text"); var_dump($cnt); Expected result: ---------------- int(2) Actual result: -------------- Warning: preg_match_all() expects at least 3 parameters, 2 given in - on line 2 bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53238&edit=1
