Предопределенные константы
Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.
Константа | Описание | С версии |
---|---|---|
PREG_PATTERN_ORDER |
Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал полные вхождения шаблона, элемент $matches[1] - все вхождения первой взятой в круглые скобки подмаски, и так далее. Только preg_match_all() реагирует на данный модификатор. | |
PREG_SET_ORDER |
Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал первый набор вхождений (полное вхождение, вхождение первой подмаски, заключенной в круглые скобки...), аналогично элемент $matches[1] - второй набор вхождений, и так далее. Только preg_match_all() реагирует на данный модификатор. | |
PREG_OFFSET_CAPTURE |
Смотрите описание флага
PREG_SPLIT_OFFSET_CAPTURE .
|
4.3.0 |
PREG_SPLIT_NO_EMPTY |
В случае, если этот флаг указан, функция preg_split() вернет только непустые подстроки. | |
PREG_SPLIT_DELIM_CAPTURE |
В случае, если этот флаг указан, то preg_split() также возвращает выражение, заключенное в круглые скобки в шаблоне разделителя. | 4.0.5 |
PREG_SPLIT_OFFSET_CAPTURE |
В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Этот флаг используется только в функции preg_split(). | 4.3.0 |
PREG_NO_ERROR |
Возвращается функцией preg_last_error(), если ошибок нет. | 5.2.0 |
PREG_INTERNAL_ERROR |
Возвращается функцией preg_last_error() в случае, если произошла внутренняя ошибка PCRE. | 5.2.0 |
PREG_BACKTRACK_LIMIT_ERROR |
Возвращается функцией preg_last_error() в случае, когда лимит обратных ссылок был исчерпан. | 5.2.0 |
PREG_RECURSION_LIMIT_ERROR |
Возвращается функцией preg_last_error() в случае, если лимит рекурсии был исчерпан. | 5.2.0 |
PREG_BAD_UTF8_ERROR |
Возвращается функцией preg_last_error(), если последняя ошибка была вызвана поврежденными UTF-8 данными (только при запуске в режиме UTF-8). | 5.2.0 |
PREG_BAD_UTF8_OFFSET_ERROR |
Возвращается функцией preg_last_error(), если смещение не соответствует началу корректной кодовой точки UTF-8 (только при запуске в режиме UTF-8). | 5.3.0 |
PCRE_VERSION |
Версия и дата релиза PCRE (например, "7.0 18-Dec-2006"). | 5.2.4 |
Коментарии
PREG_PATTERN_ORDER: 1
PREG_SET_ORDER: 2
PREG_OFFSET_CAPTURE: 256
PREG_SPLIT_NO_EMPTY: 1
PREG_SPLIT_DELIM_CAPTURE: 2
PREG_SPLIT_OFFSET_CAPTURE: 4
PREG_NO_ERROR: 0
PREG_INTERNAL_ERROR: 1
PREG_BACKTRACK_LIMIT_ERROR: 2
PREG_RECURSION_LIMIT_ERROR: 3
PREG_BAD_UTF8_ERROR: 4
PREG_BAD_UTF8_OFFSET_ERROR: 5
PCRE_VERSION: %YOUR_VERSION_NUMBER%
The new PREG_JIT_STACKLIMIT_ERROR constant introduced with PHP 7.0.0 has got a value of 6.
I experienced this error code when parsing a 112KB file. preg_match_all failed with this error. Interesting was: The matches array contained some entries, but not all as the command failed (I missed to check the return value).
Unfortunately you can not configure the stack-size of the PCRE JIT. The only way out was - at least for me - to disable the PCRE JIT via php.ini (pcre.jit=0).