ScotlandPHP

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PREG константы
Константа Описание С версии
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
PREG_JIT_STACKLIMIT_ERROR Возвращается функцией preg_last_error() если последняя функция PCRE завершилась неудачно из-за лимита стека JIT. 7.0.0
PCRE_VERSION Версия и дата релиза PCRE (например, "7.0 18-Dec-2006"). 5.2.4
add a note add a note

User Contributed Notes 2 notes

up
9
erutan409 at hotmail dot com
2 years ago
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%
up
3
Robert
1 year ago
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).
To Top