Bug #77937 [Nab->ReO]: preg_match failed
| From: | cmb@php.net | Date: | Thu, 25 Apr 2019 09:14:28 +0000 |
| Subject: | Bug #77937 [Nab->ReO]: preg_match failed | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-220604@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=77937&edit=1
ID: 77937
Updated by: cmb@php.net
Reported by: v-altruo at microsoft dot com
Summary: preg_match failed
-Status: Not a bug
+Status: Re-Opened
Type: Bug
Package: PCRE related
Operating System: Windows 10
PHP Version: 7.3.5RC1
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Thanks for reporting! I can reproduce the *test* *failure*. The
problem is that setlocale()[1] claims to support "pt_PT", but
actually it does not. Actually supported locales would be "pt-PT"
and "portuguese".
I'm not sure yet what to do about this. Simply fixing the test
case for Windows would be an option, but that would not fix the
underlying issue which may affect existing userland code.
[1] <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/setlocale-wsetlocale?view=vs-2019>
Previous Comments:
------------------------------------------------------------------------
[2019-04-24 22:24:29] a at b dot c dot de
Incidentally, the test cited in the original report uses the string
"aà áçéè", not Hebrew characters.
------------------------------------------------------------------------
[2019-04-24 22:20:37] a at b dot c dot de
Adding the /u modifier to the pattern would help (assuming the source is encoded in UTF8 - you
can't even SAY "a×××××" in ISO8859-1).
------------------------------------------------------------------------
[2019-04-24 20:45:09] requinix@php.net
Last I knew Portuguese does not cover Hebrew characters.
------------------------------------------------------------------------
[2019-04-24 20:33:06] v-altruo at microsoft dot com
Description:
------------
Failed regardless of OPCache being enabled or disabled and if it was TS or NTS.
Test file location: ext\pcre\tests\locales.phpt
Test script:
---------------
setlocale(LC_ALL, 'pt_PT', 'pt', 'pt_PT.ISO8859-1',
'portuguese');
var_dump(preg_match('/^\w{6}$/', 'a×××××'));
Expected result:
----------------
int(1)
Actual result:
--------------
int(0)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=77937&edit=1