3v4l.org

run code in 300+ PHP versions simultaneously
<?php $time = "31d2h54"; $minutes = 0; $days = 0; $hours = 0; function lastinteger($string) { preg_match_all('((\d)+)',$string,$array); echo "Taille du tableau trouve : " . count($array); echo PHP_EOL, "CHaine du last integer " . $array[0] , PHP_EOL; echo PHP_EOL, "var dump : " . var_dump($array) ,PHP_EOL; $out = end($array); return $out[0]; } $length = strlen($time); $positionDays = strpos($time, "d"); echo $positionDays . ": Position des jours "; $positionHours = strpos($time, "h"); echo $positionHours . ": Position des heures "; $positionMinutes = strpos($time, "m"); echo $positionMinutes . ": Position des Minutes ", PHP_EOL; if ($positionDays === false) { } else { if (is_numeric(substr($time, $positionDays + 1 , $length - 1))) { $days += (intval(substr($time, $positionDays + 1, $length - 1)) / 60); } $days += lastinteger(substr($time, 0, $positionDays)); } if ($positionHours === false) { } else { if (is_numeric(substr($time, $positionHours + 1 , $length - 1))) { $hours += (intval(substr($time, $positionHours + 1, $length - 1)) / 60); } echo "chaine envoyé " . substr($time, 0, $positionHours), PHP_EOL; $hours += lastinteger(substr($time, 0, $positionHours)); } if ($positionMinutes === false) { } else { if(is_numeric(substr($time,$positionMinutes + 1,$length -1))) { $minutes += (intval(substr($time,$positionMinutes + 1,$length -1)) / 60); } $minutes += lastinteger(substr($time,0,$positionMinutes)); } echo "Temps : "; echo $minutes . " minutes "; echo $hours . " heures "; echo $days . " jours ";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 31
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 61
Branch analysis from position: 61
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 64
Branch analysis from position: 63
1 jumps found. (Code = 42) Position 1 = 102
Branch analysis from position: 102
2 jumps found. (Code = 43) Position 1 = 104, Position 2 = 105
Branch analysis from position: 104
1 jumps found. (Code = 42) Position 1 = 135
Branch analysis from position: 135
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 105
2 jumps found. (Code = 43) Position 1 = 116, Position 2 = 126
Branch analysis from position: 116
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 126
Branch analysis from position: 64
2 jumps found. (Code = 43) Position 1 = 75, Position 2 = 85
Branch analysis from position: 75
2 jumps found. (Code = 43) Position 1 = 104, Position 2 = 105
Branch analysis from position: 104
Branch analysis from position: 105
Branch analysis from position: 85
Branch analysis from position: 31
2 jumps found. (Code = 43) Position 1 = 42, Position 2 = 52
Branch analysis from position: 42
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 64
Branch analysis from position: 63
Branch analysis from position: 64
Branch analysis from position: 52
filename:       /in/ZlCAO
function name:  (null)
number of ops:  143
compiled vars:  !0 = $time, !1 = $minutes, !2 = $days, !3 = $hours, !4 = $length, !5 = $positionDays, !6 = $positionHours, !7 = $positionMinutes
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '31d2h54'
    3     1        ASSIGN                                                   !1, 0
    4     2        ASSIGN                                                   !2, 0
    5     3        ASSIGN                                                   !3, 0
   21     4        STRLEN                                           ~12     !0
          5        ASSIGN                                                   !4, ~12
   23     6        INIT_FCALL                                               'strpos'
          7        SEND_VAR                                                 !0
          8        SEND_VAL                                                 'd'
          9        DO_ICALL                                         $14     
         10        ASSIGN                                                   !5, $14
   24    11        CONCAT                                           ~16     !5, '%3A+Position+des+jours+'
         12        ECHO                                                     ~16
   25    13        INIT_FCALL                                               'strpos'
         14        SEND_VAR                                                 !0
         15        SEND_VAL                                                 'h'
         16        DO_ICALL                                         $17     
         17        ASSIGN                                                   !6, $17
   26    18        CONCAT                                           ~19     !6, '%3A+Position+des+heures+'
         19        ECHO                                                     ~19
   27    20        INIT_FCALL                                               'strpos'
         21        SEND_VAR                                                 !0
         22        SEND_VAL                                                 'm'
         23        DO_ICALL                                         $20     
         24        ASSIGN                                                   !7, $20
   28    25        CONCAT                                           ~22     !7, '%3A+Position+des+Minutes+'
         26        ECHO                                                     ~22
         27        ECHO                                                     '%0A'
   30    28        TYPE_CHECK                                    4          !5
         29      > JMPZ                                                     ~23, ->31
         30    > > JMP                                                      ->61
   33    31    >   INIT_FCALL                                               'is_numeric'
         32        INIT_FCALL                                               'substr'
         33        SEND_VAR                                                 !0
         34        ADD                                              ~24     !5, 1
         35        SEND_VAL                                                 ~24
         36        SUB                                              ~25     !4, 1
         37        SEND_VAL                                                 ~25
         38        DO_ICALL                                         $26     
         39        SEND_VAR                                                 $26
         40        DO_ICALL                                         $27     
         41      > JMPZ                                                     $27, ->52
   34    42    >   INIT_FCALL                                               'substr'
         43        SEND_VAR                                                 !0
         44        ADD                                              ~28     !5, 1
         45        SEND_VAL                                                 ~28
         46        SUB                                              ~29     !4, 1
         47        SEND_VAL                                                 ~29
         48        DO_ICALL                                         $30     
         49        CAST                                          4  ~31     $30
         50        DIV                                              ~32     ~31, 60
         51        ASSIGN_OP                                     1          !2, ~32
   37    52    >   INIT_FCALL                                               'lastinteger'
         53        INIT_FCALL                                               'substr'
         54        SEND_VAR                                                 !0
         55        SEND_VAL                                                 0
         56        SEND_VAR                                                 !5
         57        DO_ICALL                                         $34     
         58        SEND_VAR                                                 $34
         59        DO_FCALL                                      0  $35     
         60        ASSIGN_OP                                     1          !2, $35
   43    61    >   TYPE_CHECK                                    4          !6
         62      > JMPZ                                                     ~37, ->64
         63    > > JMP                                                      ->102
   46    64    >   INIT_FCALL                                               'is_numeric'
         65        INIT_FCALL                                               'substr'
         66        SEND_VAR                                                 !0
         67        ADD                                              ~38     !6, 1
         68        SEND_VAL                                                 ~38
         69        SUB                                              ~39     !4, 1
         70        SEND_VAL                                                 ~39
         71        DO_ICALL                                         $40     
         72        SEND_VAR                                                 $40
         73        DO_ICALL                                         $41     
         74      > JMPZ                                                     $41, ->85
   47    75    >   INIT_FCALL                                               'substr'
         76        SEND_VAR                                                 !0
         77        ADD                                              ~42     !6, 1
         78        SEND_VAL                                                 ~42
         79        SUB                                              ~43     !4, 1
         80        SEND_VAL                                                 ~43
         81        DO_ICALL                                         $44     
         82        CAST                                          4  ~45     $44
         83        DIV                                              ~46     ~45, 60
         84        ASSIGN_OP                                     1          !3, ~46
   50    85    >   INIT_FCALL                                               'substr'
         86        SEND_VAR                                                 !0
         87        SEND_VAL                                                 0
         88        SEND_VAR                                                 !6
         89        DO_ICALL                                         $48     
         90        CONCAT                                           ~49     'chaine+envoy%C3%A9+', $48
         91        ECHO                                                     ~49
         92        ECHO                                                     '%0A'
   51    93        INIT_FCALL                                               'lastinteger'
         94        INIT_FCALL                                               'substr'
         95        SEND_VAR                                                 !0
         96        SEND_VAL                                                 0
         97        SEND_VAR                                                 !6
         98        DO_ICALL                                         $50     
         99        SEND_VAR                                                 $50
        100        DO_FCALL                                      0  $51     
        101        ASSIGN_OP                                     1          !3, $51
   55   102    >   TYPE_CHECK                                    4          !7
        103      > JMPZ                                                     ~53, ->105
        104    > > JMP                                                      ->135
   58   105    >   INIT_FCALL                                               'is_numeric'
        106        INIT_FCALL                                               'substr'
        107        SEND_VAR                                                 !0
        108        ADD                                              ~54     !7, 1
        109        SEND_VAL                                                 ~54
        110        SUB                                              ~55     !4, 1
        111        SEND_VAL                                                 ~55
        112        DO_ICALL                                         $56     
        113        SEND_VAR                                                 $56
        114        DO_ICALL                                         $57     
        115      > JMPZ                                                     $57, ->126
   59   116    >   INIT_FCALL                                               'substr'
        117        SEND_VAR                                                 !0
        118        ADD                                              ~58     !7, 1
        119        SEND_VAL                                                 ~58
        120        SUB                                              ~59     !4, 1
        121        SEND_VAL                                                 ~59
        122        DO_ICALL                                         $60     
        123        CAST                                          4  ~61     $60
        124        DIV                                              ~62     ~61, 60
        125        ASSIGN_OP                                     1          !1, ~62
   61   126    >   INIT_FCALL                                               'lastinteger'
        127        INIT_FCALL                                               'substr'
        128        SEND_VAR                                                 !0
        129        SEND_VAL                                                 0
        130        SEND_VAR                                                 !7
        131        DO_ICALL                                         $64     
        132        SEND_VAR                                                 $64
        133        DO_FCALL                                      0  $65     
        134        ASSIGN_OP                                     1          !1, $65
   66   135    >   ECHO                                                     'Temps+%3A+'
   67   136        CONCAT                                           ~67     !1, '+minutes+'
        137        ECHO                                                     ~67
   68   138        CONCAT                                           ~68     !3, '+heures+'
        139        ECHO                                                     ~68
   69   140        CONCAT                                           ~69     !2, '+jours+'
        141        ECHO                                                     ~69
        142      > RETURN                                                   1

Function lastinteger:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/ZlCAO
function name:  lastinteger
number of ops:  28
compiled vars:  !0 = $string, !1 = $array, !2 = $out
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    7     0  E >   RECV                                             !0      
    8     1        INIT_FCALL                                               'preg_match_all'
          2        SEND_VAL                                                 '%28%28%5Cd%29%2B%29'
          3        SEND_VAR                                                 !0
          4        SEND_REF                                                 !1
          5        DO_ICALL                                                 
   10     6        COUNT                                            ~4      !1
          7        CONCAT                                           ~5      'Taille+du+tableau+trouve+%3A+', ~4
          8        ECHO                                                     ~5
   12     9        ECHO                                                     '%0A'
         10        FETCH_DIM_R                                      ~6      !1, 0
         11        CONCAT                                           ~7      'CHaine+du+last+integer+', ~6
         12        ECHO                                                     ~7
         13        ECHO                                                     '%0A'
   13    14        ECHO                                                     '%0A'
         15        INIT_FCALL                                               'var_dump'
         16        SEND_VAR                                                 !1
         17        DO_ICALL                                         $8      
         18        CONCAT                                           ~9      'var+dump+%3A+', $8
         19        ECHO                                                     ~9
         20        ECHO                                                     '%0A'
   15    21        INIT_FCALL                                               'end'
         22        SEND_REF                                                 !1
         23        DO_ICALL                                         $10     
         24        ASSIGN                                                   !2, $10
   18    25        FETCH_DIM_R                                      ~12     !2, 0
         26      > RETURN                                                   ~12
   19    27*     > RETURN                                                   null

End of function lastinteger

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
175.15 ms | 1415 KiB | 28 Q