åŽšįžŠæ¸ˆãŋ厚数

äģĨä¸‹ãŽåŽšæ•°ãŒåŽšįžŠã•ã‚ŒãĻいぞす。 こぎé–ĸæ•°ãŽæ‹ĄåŧĩãƒĸジãƒĨãƒŧãƒĢが PHP įĩ„ãŋčžŧãŋã§ã‚ŗãƒŗãƒ‘ã‚¤ãƒĢされãĻいるか、 åŽŸčĄŒæ™‚ãĢå‹•įš„ãĢロãƒŧドされãĻいる場合ぎãŋäŊŋį”¨å¯čƒŊです。

PREG 厚数
厚数 čĒŦ明 äŊŋį”¨å¯čƒŊ
PREG_PATTERN_ORDER (int) $matches[0] はパã‚ŋãƒŧãƒŗå…¨äŊ“ãĢマッチした文字列ぎ配列、 $matches[1] はįŦŦ 1 ãŽã‚­ãƒŖãƒ—ãƒãƒŖį”¨ã‚ĩブパã‚ŋãƒŧãƒŗãĢマッチした文字列ぎ配列、 ã¨ã„ãŖãŸã‚ˆã†ãĢįĩæžœãŽé †åēã‚’指厚しぞす。 こぎフナグは、preg_match_all() でぎãŋäŊŋį”¨ã•ã‚Œãžã™ã€‚  
PREG_SET_ORDER (int) $matches[0] は 1 å›žį›ŽãŽãƒžãƒƒãƒãƒŗã‚°ã§ã‚­ãƒŖãƒ—ãƒãƒŖã—ãŸå€¤ãŽé…åˆ—ã€ $matches[1] は 2 å›žį›ŽãŽãƒžãƒƒãƒãƒŗã‚°ã§ã‚­ãƒŖãƒ—ãƒãƒŖã—ãŸå€¤ãŽé…åˆ—ã€ ã¨ã„ãŖãŸã‚ˆã†ãĢįĩæžœãŽé †åēã‚’指厚しぞす。 こぎフナグは、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() が、 マッチしãĒã‹ãŖãŸã‚ĩブパã‚ŋãƒŧãƒŗã‚’ null としãĻ $matches ãĢåĢむようãĢしぞす。 こぎフナグがãĒいと、マッチしãĒã‹ãŖãŸã‚ĩブパã‚ŋãƒŧãƒŗã¯ įŠē文字列ãĢマッチしたかぎようãĢįŠē文字列としãĻå ąå‘Šã•ã‚Œãžã™ã€‚ ã“ãŽãƒ•ãƒŠã‚°ã‚’č¨­åŽšã™ã‚‹ã“ã¨ã§ã€ã“ã‚Œã‚‰ãĩたつぎ場合をåŒēåˆĨできぞす。 preg_match() では、こぎフナグをäŊŋわãĒい限り、 æœĢå°žãĢあるマッチしãĒã‹ãŖãŸã‚ĩブパã‚ŋãƒŧãƒŗã¯ $matches ãĢãžãŖãŸãåĢぞれぞせん。 PHP 7.4.0 äģĨé™ã¯ã€ã“ãŽãƒ•ãƒŠã‚°ã‚’č¨­åŽšã™ã‚‹ã¨ãã‚Œã‚‰ãŒ null としãĻå ąå‘Šã•ã‚Œã‚‹ãŸã‚ã€ $matches ぎã‚ĩイã‚ēが常ãĢ同じãĢãĒりぞす。 7.2.0
PREG_NO_ERROR (int) エナãƒŧが存在しãĒã‹ãŖãŸå ´åˆãĢ preg_last_error() からčŋ”されぞす。 5.2.0
PREG_INTERNAL_ERROR (int) PCRE 内部エナãƒŧがį™ēį”Ÿã—ãŸå ´åˆãĢ preg_last_error() からčŋ”されぞす。 5.2.0
PREG_BACKTRACK_LIMIT_ERROR (int) backtrack limit ãĢ達した場合ãĢ preg_last_error() からčŋ”されぞす。 5.2.0
PREG_RECURSION_LIMIT_ERROR (int) recursion limit ãĢ達した場合ãĢ preg_last_error() からčŋ”されぞす。 5.2.0
PREG_BAD_UTF8_ERROR (int) åŖŠã‚ŒãĻいる UTF8 デãƒŧã‚ŋãĢã‚ˆãŖãĻį›´čŋ‘ぎエナãƒŧがį™ēį”Ÿã—ãŸå ´åˆãĢ preg_last_error() からčŋ”されぞす (UTF-8 ãƒĸãƒŧド ã§æ­ŖčĻčĄ¨įžã‚’åŽŸčĄŒã—ãŸå ´åˆãŽãŋ)。 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR (int) ã‚Ēフã‚ģットがåĻĨåŊ“ãĒ UTF-8 ã‚ŗãƒŧãƒ‰ãƒã‚¤ãƒŗãƒˆãŽé–‹å§‹äŊįŊŽãĢ寞åŋœã—ãĒい場合ãĢ preg_last_error() からčŋ”されぞす (UTF-8 ãƒĸãƒŧド ã§æ­ŖčĻčĄ¨įžã‚’åŽŸčĄŒã—ãŸå ´åˆãŽãŋ)。 5.3.0
PREG_JIT_STACKLIMIT_ERROR (int) į›´čŋ‘ぎ PCRE é–ĸæ•°ãŽåŽŸčĄŒãŒ JIT ゚ã‚ŋックįŠē間ぎåˆļ限ãĢã‚ˆãŖãĻå¤ąæ•—ã—ãŸå ´åˆãĢ preg_last_error() からčŋ”されぞす。 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) 指厚されたパã‚ŋãƒŧãƒŗãĢマッチしãĒいčĻį´ ã‚’čŋ”しぞす。  
īŧ‹add a note

User Contributed Notes 2 notes

up
30
erutan409 at hotmail dot com Âļ
11 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
15
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).