php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #16512 PREG_SPLIT_DELIM_CAPTURE does not work
Submitted: 2002-04-09 08:59 UTC Modified: 2002-04-09 09:10 UTC
From: bogien at conecto dot pl Assigned:
Status: Closed Package: PCRE related
PHP Version: 4.1.2 OS: Win32, Linux
Private report: No CVE-ID: None
 [2002-04-09 08:59 UTC] bogien at conecto dot pl
PREG_SPLIT_DELIM_CAPTURE does not work - preg_split() simply omits the delimiters disregarding the flag.

The following line:

print_r(preg_split('/a/', 'mama', -1, PREG_SPLIT_DELIM_CAPTURE));

...returns:

Array
(
    [0] => m
    [1] => m
    [2] => 
)

...just like without the last argument - while it should return:

Array
(
    [0] => m
    [1] => a
    [2] => m
    [3] => a
    [4] => 
)

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-04-09 09:10 UTC] mfischer@php.net
Read the manual:

PREG_SPLIT_DELIM_CAPTURE

If this flag is set, parenthesized expression in the delimiter pattern will be captured and returned as well. This flag was added for 4.0.5.

So your pattern should look like:
/(a)/

and presto, it works.
 [2002-09-24 04:54 UTC] ed at avi dot ru
It will be a nice idea to put this example to documentation; I was already going to send a bug report about PREG_SPLIT_DELIM_CAPTURE when I found this article.
 [2011-05-05 14:18 UTC] admin2011 at luebker dot org
very useful information, please add to documentation or highlight the phrase "parenthesized expression". Thanks.
 
PHP Copyright © 2001-2018 The PHP Group
All rights reserved.
Last updated: Sun Nov 19 01:31:42 2017 UTC