3v4l.org

run code in 300+ PHP versions simultaneously
<?php $subjects = [ 'LF' => "aaaa\nbbbb", 'CRLF' => "aaaa\r\nbbbb", 'CR' => "aaaa\rbbbb", 'NUL' => "aaaa\x00bbbb", 'VT' => "aaaa\x0Bbbbb", 'FF' => "aaaa\x0Cbbbb", 'NEL' => "aaaa\x85bbbb", 'LS' => "aaaa\u{2028}bbbb", 'PS' => "aaaa\u{2029}bbbb" ]; $patterns = [ 'DEFAULT' => ['~.~A', '~\N~A'], 'ANYCRLF' => ['~(*ANYCRLF).~A', '~(*ANYCRLF)\N~A'], 'CRLF' => ['~(*CRLF).~A', '~(*CRLF)\N~A'], 'CR' => ['~(*CR).~A', '~(*CR)\N~A'], 'LF' => ['~(*LF).~A', '~(*LF)\N~A'], 'ANY' => ['~(*ANY).~A', '~(*ANY)\N~A'], 'NUL' => ['~(*NUL).~A', '~(*NUL)\N~A'], ]; $format = ' | %7s | %10s | %3s | %3s | ' . PHP_EOL; $sep = '-+---------+------------+-----+-----+-' . PHP_EOL; echo ' | nl type | nl setting | dot | \N | ', PHP_EOL; foreach($subjects as $nl => $subject) { echo $sep; foreach($patterns as $nlsetting => $pattern) { if (false === $cntdot = preg_match_all($pattern[0].'u', $subject)) $cntdot = preg_match_all($pattern[0], $subject); if (false === $cntN = preg_match_all($pattern[1].'u', $subject)) $cntN = preg_match_all($pattern[1], $subject); printf($format, $nl, $nlsetting, $cntdot, $cntN); } } echo $sep;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 7, Position 2 = 53
Branch analysis from position: 7
2 jumps found. (Code = 78) Position 1 = 8, Position 2 = 53
Branch analysis from position: 8
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 51
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 51
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 28
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 43
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 43
Branch analysis from position: 28
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
Branch analysis from position: 51
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
filename:       /in/vWQtc
function name:  (null)
number of ops:  56
compiled vars:  !0 = $subjects, !1 = $patterns, !2 = $format, !3 = $sep, !4 = $subject, !5 = $nl, !6 = $pattern, !7 = $nlsetting, !8 = $cntdot, !9 = $cntN
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   15     1        ASSIGN                                                   !1, <array>
   26     2        ASSIGN                                                   !2, '+%7C+%257s+%7C+%2510s+%7C+%253s+%7C+%253s+%7C+%0A'
   27     3        ASSIGN                                                   !3, '-%2B---------%2B------------%2B-----%2B-----%2B-%0A'
   28     4        ECHO                                                     '+%7C+nl+type+%7C+nl+setting+%7C+dot+%7C+%5CN++%7C+'
          5        ECHO                                                     '%0A'
   30     6      > FE_RESET_R                                       $14     !0, ->53
          7    > > FE_FETCH_R                                       ~15     $14, !4, ->53
          8    >   ASSIGN                                                   !5, ~15
   31     9        ECHO                                                     !3
   32    10      > FE_RESET_R                                       $17     !1, ->51
         11    > > FE_FETCH_R                                       ~18     $17, !6, ->51
         12    >   ASSIGN                                                   !7, ~18
   33    13        INIT_FCALL                                               'preg_match_all'
         14        FETCH_DIM_R                                      ~20     !6, 0
         15        CONCAT                                           ~21     ~20, 'u'
         16        SEND_VAL                                                 ~21
         17        SEND_VAR                                                 !4
         18        DO_ICALL                                         $22     
         19        ASSIGN                                           ~23     !8, $22
         20        TYPE_CHECK                                    4          ~23
         21      > JMPZ                                                     ~24, ->28
   34    22    >   INIT_FCALL                                               'preg_match_all'
         23        FETCH_DIM_R                                      ~25     !6, 0
         24        SEND_VAL                                                 ~25
         25        SEND_VAR                                                 !4
         26        DO_ICALL                                         $26     
         27        ASSIGN                                                   !8, $26
   36    28    >   INIT_FCALL                                               'preg_match_all'
         29        FETCH_DIM_R                                      ~28     !6, 1
         30        CONCAT                                           ~29     ~28, 'u'
         31        SEND_VAL                                                 ~29
         32        SEND_VAR                                                 !4
         33        DO_ICALL                                         $30     
         34        ASSIGN                                           ~31     !9, $30
         35        TYPE_CHECK                                    4          ~31
         36      > JMPZ                                                     ~32, ->43
   37    37    >   INIT_FCALL                                               'preg_match_all'
         38        FETCH_DIM_R                                      ~33     !6, 1
         39        SEND_VAL                                                 ~33
         40        SEND_VAR                                                 !4
         41        DO_ICALL                                         $34     
         42        ASSIGN                                                   !9, $34
   39    43    >   INIT_FCALL                                               'printf'
         44        SEND_VAR                                                 !2
         45        SEND_VAR                                                 !5
         46        SEND_VAR                                                 !7
         47        SEND_VAR                                                 !8
         48        SEND_VAR                                                 !9
         49        DO_ICALL                                                 
   32    50      > JMP                                                      ->11
         51    >   FE_FREE                                                  $17
   30    52      > JMP                                                      ->7
         53    >   FE_FREE                                                  $14
   42    54        ECHO                                                     !3
   43    55      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
143.48 ms | 1004 KiB | 15 Q