ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ константы

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ константы ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΈ доступны, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π»ΠΈΠ±ΠΎ собрали Π² 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) Если Ρ„Π»Π°Π³ установлСн, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ совпадСния Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ смСщСниС Π±Π°ΠΉΡ‚Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния Π² массивС, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт прСдставляСт собой массив, состоящий ΠΈΠ· Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ строки со смСщСниСм 0 ΠΈ смСщСния Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ со смСщСниСм 1. Β 
PREG_SPLIT_NO_EMPTY (int) Π‘ этим Ρ„Π»Π°Π³ΠΎΠΌ функция preg_split() Π²Π΅Ρ€Π½Ρ‘Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСпустыС подстроки. Β 
PREG_SPLIT_DELIM_CAPTURE (int) Π‘ этим Ρ„Π»Π°Π³ΠΎΠΌ функция preg_split() Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² шаблонС раздСлитСля Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки. Β 
PREG_SPLIT_OFFSET_CAPTURE (int) Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ описаниС константы PREG_OFFSET_CAPTURE. Π€Π»Π°Π³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 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
PCRE_VERSION_MAJOR (int) НомСр ΠΌΠ°ΠΆΠΎΡ€Π½ΠΎΠΉ вСрсии модуля PCRE. Β 
PCRE_VERSION_MINOR (int) НомСр ΠΌΠΈΠ½ΠΎΡ€Π½ΠΎΠΉ вСрсии модуля PCRE. Β 
PCRE_JIT_SUPPORT (bool) Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, доступна Π»ΠΈ для модуля PCRE ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° JIT-компиляции. Β 
PREG_GREP_INVERT (int) Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Β 
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 2 notes

up
28
erutan409 at hotmail dot com ΒΆ
10 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
16
Robert ΒΆ
10 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).