CascadiaPHP 2024

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

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

Константы PREG
Константы Описание С версии
PREG_PATTERN_ORDER (int) Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал полные вхождения шаблона, элемент $matches[1] - все вхождения первой взятой в круглые скобки подмаски и т. д. Этот флаг указывают только при вызове функции preg_match_all().  
PREG_SET_ORDER (int) Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал первый набор вхождений (полное вхождение, вхождение первой подмаски, заключённой в круглые скобки...), аналогично элемент $matches[1] — второй набор вхождений и т. д. Этот флаг указывают только при вызове функции preg_match_all().  
PREG_OFFSET_CAPTURE (int) Смотрите описание флага PREG_SPLIT_OFFSET_CAPTURE.  
PREG_SPLIT_NO_EMPTY (int) Если этот флаг указан, функция preg_split() вернёт только непустые подстроки.  
PREG_SPLIT_DELIM_CAPTURE (int) Если этот флаг указан, то функция preg_split() также возвращает выражение, заключённое в шаблоне разделителя в круглые скобки.  
PREG_SPLIT_OFFSET_CAPTURE (int) Если этот флаг указан, для каждой найденной подстроки будет указана её позиция в исходной строке. Когда указывают этот флаг, учитывают, что он меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом — смещение. Этот флаг указывают только при вызове функции preg_split().  
PREG_UNMATCHED_AS_NULL (int) Этот флаг указывает функциям preg_match() и preg_match_all() включать несовпадающие подмаски в переменной $matches в виде значений null. Без этого флага несовпадающие подмаски отображаются как пустые строки, как если бы не было найдено совпадений. Установка этого флага разрешает проводить различие между двумя этими случаями. 7.2.0
PREG_NO_ERROR (int) Возвращается функцией preg_last_error(), если ошибок нет. 5.2.0
PREG_INTERNAL_ERROR (int) Возвращается функцией preg_last_error(), в случае если произошла внутренняя ошибка PCRE. 5.2.0
PREG_BACKTRACK_LIMIT_ERROR (int) Возвращается функцией preg_last_error(), если лимит обратных ссылок был исчерпан. 5.2.0
PREG_RECURSION_LIMIT_ERROR (int) Возвращается функцией preg_last_error(), если лимит рекурсии был исчерпан. 5.2.0
PREG_BAD_UTF8_ERROR (int) Возвращается функцией preg_last_error(), если последняя ошибка была вызвана неправильными данными UTF-8 (только при запуске регулярного выражения в режиме UTF-8). 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR (int) Возвращается функцией preg_last_error(), если смещение не соответствует началу корректной кодовой точки UTF-8 (только при запуске в режиме UTF-8). 5.3.0
PREG_JIT_STACKLIMIT_ERROR (int) Возвращается функцией preg_last_error(), если последняя функция PCRE завершилась неудачно из-за лимита стека JIT. 7.0.0
PCRE_VERSION (string) Версия и дата релиза PCRE (например, «7.0 18-Dec-2006»). 5.2.4
add a note

User Contributed Notes 2 notes

up
27
erutan409 at hotmail dot com
8 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
13
Robert
8 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