Longhorn PHP 2019 CFP is open!

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

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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_UNMATCHED_AS_NULL Этот флаг указывает preg_match() и preg_match_all() включать несовпадающие подмаски в $matches в виде значений NULL. Без этого флага несовпадающие подмаски отображаются как пустые строки, как если бы не было найдено совпаданий. Установка этого флага позволяет проводить различие между двумя этими случаями. 7.2.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
18
erutan409 at hotmail dot com
3 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
9
Robert
2 years 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