Installation
The PCRE extension is a core PHP extension and is always enabled.
By default, the extension uses a bundled version of the PCRE2 library.
On non-Windows systems, an external PCRE2 library can be used instead with
the --with-external-pcre configuration
option. The minimum supported version is 10.30. Windows builds always use
the bundled library.
PCRE2's just-in-time (JIT) compilation is enabled by default.
It can be disabled with the --without-pcre-jit
configuration option.
The Windows version of PHP has built-in
support for this extension. You do not need to load any additional
extensions in order to use these functions.
PCRE2 is an active project, and as it changes, so does the PHP
functionality that relies upon it. It is possible that certain parts
of the PHP documentation are outdated. For a list of changes, see the
» PCRE2 library changelog.
The upgrade history of the bundled library is listed below:
Upgrade history of the bundled PCRE library
| PHP Version |
Updated PCRE Version |
Notes |
| 8.4.0 |
10.44 |
|
| 8.3.0 |
10.42 |
|
| 8.2.0 |
10.40 |
|
| 8.1.1 |
10.39 |
|
| 8.1.0 |
10.37 |
|
| 7.4.12, 8.0.0 |
10.35 |
|
| 7.4.6 |
10.34 |
|
| 7.4.0 |
10.33 |
|
| 7.3.0 |
10.32 |
|
| 7.2.0 |
8.41 |
|
| 7.0.3 |
8.38 |
See CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394 |
| 7.0.0 |
8.37 |
See CVE-2015-2325, CVE-2015-2326 |
Lrinczy Zsigmond ¶7 years ago
From PHP version 7.3, 'pcre2' is used instead of 'pcre'. It is bundled with the PHP source, or a preinstalled pcre2 can be used if it was compiled with these configure-options:
--enable-shared --enable-unicode --enable-jit
If you want to use preinstalled pcre2 with PHP, use configure-options --with-pcre-dir=<path> and --with-pcre-regex=<path> (I don't know why there is two of them).