#23904 [Opn->Bgs]: PREG_SPLIT_NO_EMPTY causes ctl chars to not be excluded with [^a-zA-Z0-9] or \W
| From: | andrei@php.net | Date: | Thu, 05 Jun 2003 13:43:00 +0000 |
| Subject: | #23904 [Opn->Bgs]: PREG_SPLIT_NO_EMPTY causes ctl chars to not be excluded with [^a-zA-Z0-9] or \W | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-41256@lists.php.net to get a copy of this message | ||
ID: 23904
Updated by: andrei@php.net
Reported By: jrose at lgb-inc dot com
-Status: Open
+Status: Bogus
Bug Type: PCRE related
Operating System: Linux
PHP Version: 4.3.1
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
Please read the function documentation. The third parameter is a
maximum number of pieces to be returned, not the flags. Try:
$parts = preg_split( '/\\W/', $string, -1, PREG_SPLIT_NO_EMPTY );
Previous Comments:
------------------------------------------------------------------------
[2003-05-30 13:10:32] jrose at lgb-inc dot com
I slammed into this whilst converting Access data into MySQL.
I was attempting to break apart the following into words (* here
indicates that it fails to match /[\w,.-?]/):
|*|W|a|s|h|i|n|g|t|o|n|,|*|D|C|*|* // text
057617368696e67746f6e2c20444320200 // hex
I first tried splitting on any white space or commas:
preg_match( '/[\\s,]+/', $string, PREG_SPLIT_NO_EMPTY );
When this didn't work, I examined the hexadecimal values as above, and,
assuming that control characters weren't included in the \s group,
tried several things, including the very simple:
preg_match( '/\\W/', $string, PREG_SPLIT_NO_EMPTY );
Nothing worked, and ultimately I had to use preg_match_all() to split
the string up.
Example:
$string = chr(5) . 'Washington,' . chr(4) . 'DC' . chr(2);
$parts = preg_split( '/\\W/', $string, PREG_SPLIT_NO_EMPTY );
echo join('|', $parts);
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=23904&edit=1