3v4l.org

run code in 300+ PHP versions simultaneously
<?php # Инициализация переменных : $aResult = array(); # результирующий массив # Загрузка страницы : $sResponse = $this->curl( 'user/eggs/activate/content/form.action', array( 'code' => $sCode ) ); # Преобразование ответа в массив : $aResponse = json_decode( $sResponse, true ); # Загрузка страницы : $sResponse = $this->curl( 'user/eggs/activate/content/form.action', array( 'code' => $sCode, 'token' => $aResponse['data']['token'] ) ); # Если зачисления не произошло : if( mb_substr_count( $sResponse, $sCode ) != 2 ) { if( count( $aExplode = explode( '<p>', $sResponse ) ) < 3 ) throw new Exception( 'undefined error' ); $aExplode = explode( '</', $aExplode[2] ); throw new Exception( trim( strip_tags( $aExplode[0] ) ) ); } # Парсинг суммы : if( count( $aExplode = explode( 'на сумму', $sResponse ) ) < 2 ) throw new Exception( 'error parse amount' ); $aExplode = explode( 'руб', $aExplode[1] ); $aResult['dAmount'] = preg_replace( '/[^0-9\.]+/', '', str_replace( ',', '.', trim( $aExplode[0] ) ) ) - 0; # Парсинг примечания : if( count( $aExplode = explode( 'Комментарий к переводу', $sResponse ) ) < 2 ) throw new Exception( 'error parse comment' ); $aExplode = explode( '</p>', $aExplode[1] ); $aResult['sComment'] = trim( strip_tags( $aExplode[0] ) ); # Подтверждение : $aResponse = json_decode( $this->curl( 'user/eggs/activate/content/activate.action', array( 'code' => $sCode ) ), true ); # Проверка подтверждения : if( !isset( $aResponse['code'] ) || !isset( $aResponse['code']['value'] ) || !isset( $aResponse['code']['_name'] ) || $aResponse['code']['value'] != '0' || $aResponse['code']['_name'] != 'NORMAL' ) throw new Exception( 'bad server answer: '.var_export( $aResponse, true ) ); return $aResult; $this->curl( 'settings/options/security.action' ); # Загрузка страницы : $aResponse = json_decode( $this->curl( 'user/person/change/security.action', array( 'type' => 'SMS_CONFIRMATION', 'value' => $bOff ? 'false' : 'true' ) ), true ); # Проверка ответа : if( !isset( $aResponse['code'] ) || !isset( $aResponse['code']['value'] ) || $aResponse['code']['value'] != 7 || !isset( $aResponse['data'] ) || !isset( $aResponse['data']['token'] ) ) throw new Exception( json_encode( $aResponse ) ); # Инициализация переменных : $sToken = $aResponse['data']['token']; # Загрузка страницы : $aResponse = json_decode( $this->curl( 'user/person/change/security.action', array( 'token' => $sToken, 'type' => 'SMS_CONFIRMATION', 'value' => $bOff ? 'false' : 'true' ) ), true ); # Проверка ответа : if( isset( $aResponse['code'] ) && isset( $aResponse['code']['value'] ) && $aResponse['code']['value'] == 0 ) return true; # Проверка ответа : if( !isset( $aResponse['code'] ) || !isset( $aResponse['code']['value'] ) || $aResponse['code']['value'] != 4 || !isset( $aResponse['identifier'] ) || $aResponse['identifier'] <= 0 ) throw new Exception( json_encode( $aResponse ) ); # Инициализация переменных : $iIdentifier = $aResponse['identifier']; # Загрузка страницы : $this->curl( 'user/confirmation/form.action', array( 'identifier' => $iIdentifier, 'token' => $sToken, 'type' => 'SMS_CONFIRMATION', 'value' => $bOff ? 'false' : 'true' ) ); return $iIdentifier;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 58
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 41
Branch analysis from position: 37
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 41
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 58
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 70
Branch analysis from position: 66
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 70
2 jumps found. (Code = 43) Position 1 = 101, Position 2 = 105
Branch analysis from position: 101
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 105
2 jumps found. (Code = 47) Position 1 = 134, Position 2 = 138
Branch analysis from position: 134
2 jumps found. (Code = 47) Position 1 = 139, Position 2 = 143
Branch analysis from position: 139
2 jumps found. (Code = 47) Position 1 = 144, Position 2 = 148
Branch analysis from position: 144
2 jumps found. (Code = 47) Position 1 = 149, Position 2 = 153
Branch analysis from position: 149
2 jumps found. (Code = 43) Position 1 = 154, Position 2 = 163
Branch analysis from position: 154
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 163
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 153
Branch analysis from position: 148
Branch analysis from position: 143
Branch analysis from position: 138
filename:       /in/qEFlE
function name:  (null)
number of ops:  290
compiled vars:  !0 = $aResult, !1 = $sResponse, !2 = $sCode, !3 = $aResponse, !4 = $aExplode, !5 = $bOff, !6 = $sToken, !7 = $iIdentifier
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                   !0, <array>
    7     1        FETCH_THIS                                       $9      
          2        INIT_METHOD_CALL                                         $9, 'curl'
          3        SEND_VAL_EX                                              'user%2Feggs%2Factivate%2Fcontent%2Fform.action'
          4        INIT_ARRAY                                       ~10     !2, 'code'
          5        SEND_VAL_EX                                              ~10
          6        DO_FCALL                                      0  $11     
          7        ASSIGN                                                   !1, $11
   10     8        INIT_FCALL                                               'json_decode'
          9        SEND_VAR                                                 !1
         10        SEND_VAL                                                 <true>
         11        DO_ICALL                                         $13     
         12        ASSIGN                                                   !3, $13
   13    13        FETCH_THIS                                       $15     
         14        INIT_METHOD_CALL                                         $15, 'curl'
         15        SEND_VAL_EX                                              'user%2Feggs%2Factivate%2Fcontent%2Fform.action'
         16        INIT_ARRAY                                       ~16     !2, 'code'
         17        FETCH_DIM_R                                      ~17     !3, 'data'
         18        FETCH_DIM_R                                      ~18     ~17, 'token'
         19        ADD_ARRAY_ELEMENT                                ~16     ~18, 'token'
         20        SEND_VAL_EX                                              ~16
         21        DO_FCALL                                      0  $19     
         22        ASSIGN                                                   !1, $19
   16    23        INIT_FCALL                                               'mb_substr_count'
         24        SEND_VAR                                                 !1
         25        SEND_VAR                                                 !2
         26        DO_ICALL                                         $21     
         27        IS_NOT_EQUAL                                             $21, 2
         28      > JMPZ                                                     ~22, ->58
   18    29    >   INIT_FCALL                                               'explode'
         30        SEND_VAL                                                 '%3Cp%3E'
         31        SEND_VAR                                                 !1
         32        DO_ICALL                                         $23     
         33        ASSIGN                                           ~24     !4, $23
         34        COUNT                                            ~25     ~24
         35        IS_SMALLER                                               ~25, 3
         36      > JMPZ                                                     ~26, ->41
   19    37    >   NEW                                              $27     'Exception'
         38        SEND_VAL_EX                                              'undefined+error'
         39        DO_FCALL                                      0          
         40      > THROW                                         0          $27
   20    41    >   INIT_FCALL                                               'explode'
         42        SEND_VAL                                                 '%3C%2F'
         43        FETCH_DIM_R                                      ~29     !4, 2
         44        SEND_VAL                                                 ~29
         45        DO_ICALL                                         $30     
         46        ASSIGN                                                   !4, $30
   21    47        NEW                                              $32     'Exception'
         48        INIT_FCALL                                               'trim'
         49        INIT_FCALL                                               'strip_tags'
         50        FETCH_DIM_R                                      ~33     !4, 0
         51        SEND_VAL                                                 ~33
         52        DO_ICALL                                         $34     
         53        SEND_VAR                                                 $34
         54        DO_ICALL                                         $35     
         55        SEND_VAR_NO_REF_EX                                       $35
         56        DO_FCALL                                      0          
         57      > THROW                                         0          $32
   25    58    >   INIT_FCALL                                               'explode'
         59        SEND_VAL                                                 '%D0%BD%D0%B0+%D1%81%D1%83%D0%BC%D0%BC%D1%83'
         60        SEND_VAR                                                 !1
         61        DO_ICALL                                         $37     
         62        ASSIGN                                           ~38     !4, $37
         63        COUNT                                            ~39     ~38
         64        IS_SMALLER                                               ~39, 2
         65      > JMPZ                                                     ~40, ->70
   26    66    >   NEW                                              $41     'Exception'
         67        SEND_VAL_EX                                              'error+parse+amount'
         68        DO_FCALL                                      0          
         69      > THROW                                         0          $41
   27    70    >   INIT_FCALL                                               'explode'
         71        SEND_VAL                                                 '%D1%80%D1%83%D0%B1'
         72        FETCH_DIM_R                                      ~43     !4, 1
         73        SEND_VAL                                                 ~43
         74        DO_ICALL                                         $44     
         75        ASSIGN                                                   !4, $44
   28    76        INIT_FCALL                                               'preg_replace'
         77        SEND_VAL                                                 '%2F%5B%5E0-9%5C.%5D%2B%2F'
         78        SEND_VAL                                                 ''
         79        INIT_FCALL                                               'str_replace'
         80        SEND_VAL                                                 '%2C'
         81        SEND_VAL                                                 '.'
         82        INIT_FCALL                                               'trim'
         83        FETCH_DIM_R                                      ~47     !4, 0
         84        SEND_VAL                                                 ~47
         85        DO_ICALL                                         $48     
         86        SEND_VAR                                                 $48
         87        DO_ICALL                                         $49     
         88        SEND_VAR                                                 $49
         89        DO_ICALL                                         $50     
         90        SUB                                              ~51     $50, 0
         91        ASSIGN_DIM                                               !0, 'dAmount'
         92        OP_DATA                                                  ~51
   31    93        INIT_FCALL                                               'explode'
         94        SEND_VAL                                                 '%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B9+%D0%BA+%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D1%83'
         95        SEND_VAR                                                 !1
         96        DO_ICALL                                         $52     
         97        ASSIGN                                           ~53     !4, $52
         98        COUNT                                            ~54     ~53
         99        IS_SMALLER                                               ~54, 2
        100      > JMPZ                                                     ~55, ->105
   32   101    >   NEW                                              $56     'Exception'
        102        SEND_VAL_EX                                              'error+parse+comment'
        103        DO_FCALL                                      0          
        104      > THROW                                         0          $56
   33   105    >   INIT_FCALL                                               'explode'
        106        SEND_VAL                                                 '%3C%2Fp%3E'
        107        FETCH_DIM_R                                      ~58     !4, 1
        108        SEND_VAL                                                 ~58
        109        DO_ICALL                                         $59     
        110        ASSIGN                                                   !4, $59
   34   111        INIT_FCALL                                               'trim'
        112        INIT_FCALL                                               'strip_tags'
        113        FETCH_DIM_R                                      ~62     !4, 0
        114        SEND_VAL                                                 ~62
        115        DO_ICALL                                         $63     
        116        SEND_VAR                                                 $63
        117        DO_ICALL                                         $64     
        118        ASSIGN_DIM                                               !0, 'sComment'
        119        OP_DATA                                                  $64
   37   120        INIT_FCALL                                               'json_decode'
        121        FETCH_THIS                                       $65     
        122        INIT_METHOD_CALL                                         $65, 'curl'
        123        SEND_VAL_EX                                              'user%2Feggs%2Factivate%2Fcontent%2Factivate.action'
        124        INIT_ARRAY                                       ~66     !2, 'code'
        125        SEND_VAL_EX                                              ~66
        126        DO_FCALL                                      0  $67     
        127        SEND_VAR                                                 $67
        128        SEND_VAL                                                 <true>
        129        DO_ICALL                                         $68     
        130        ASSIGN                                                   !3, $68
   40   131        ISSET_ISEMPTY_DIM_OBJ                         0  ~70     !3, 'code'
        132        BOOL_NOT                                         ~71     ~70
        133      > JMPNZ_EX                                         ~71     ~71, ->138
        134    >   FETCH_DIM_IS                                     ~72     !3, 'code'
        135        ISSET_ISEMPTY_DIM_OBJ                         0  ~73     ~72, 'value'
        136        BOOL_NOT                                         ~74     ~73
        137        BOOL                                             ~71     ~74
        138    > > JMPNZ_EX                                         ~71     ~71, ->143
        139    >   FETCH_DIM_IS                                     ~75     !3, 'code'
        140        ISSET_ISEMPTY_DIM_OBJ                         0  ~76     ~75, '_name'
        141        BOOL_NOT                                         ~77     ~76
        142        BOOL                                             ~71     ~77
        143    > > JMPNZ_EX                                         ~71     ~71, ->148
        144    >   FETCH_DIM_R                                      ~78     !3, 'code'
        145        FETCH_DIM_R                                      ~79     ~78, 'value'
        146        IS_NOT_EQUAL                                     ~80     ~79, '0'
        147        BOOL                                             ~71     ~80
        148    > > JMPNZ_EX                                         ~71     ~71, ->153
        149    >   FETCH_DIM_R                                      ~81     !3, 'code'
        150        FETCH_DIM_R                                      ~82     ~81, '_name'
        151        IS_NOT_EQUAL                                     ~83     ~82, 'NORMAL'
        152        BOOL                                             ~71     ~83
        153    > > JMPZ                                                     ~71, ->163
   41   154    >   NEW                                              $84     'Exception'
        155        INIT_FCALL                                               'var_export'
        156        SEND_VAR                                                 !3
        157        SEND_VAL                                                 <true>
        158        DO_ICALL                                         $85     
        159        CONCAT                                           ~86     'bad+server+answer%3A+', $85
        160        SEND_VAL_EX                                              ~86
        161        DO_FCALL                                      0          
        162      > THROW                                         0          $84
   43   163    > > RETURN                                                   !0
   47   164*       FETCH_THIS                                       $88     
        165*       INIT_METHOD_CALL                                         $88, 'curl'
        166*       SEND_VAL_EX                                              'settings%2Foptions%2Fsecurity.action'
        167*       DO_FCALL                                      0          
   50   168*       INIT_FCALL                                               'json_decode'
        169*       FETCH_THIS                                       $90     
        170*       INIT_METHOD_CALL                                         $90, 'curl'
        171*       SEND_VAL_EX                                              'user%2Fperson%2Fchange%2Fsecurity.action'
   51   172*       INIT_ARRAY                                       ~91     'SMS_CONFIRMATION', 'type'
   52   173*       JMPZ                                                     !5, ->176
        174*       QM_ASSIGN                                        ~92     'false'
        175*       JMP                                                      ->177
        176*       QM_ASSIGN                                        ~92     'true'
        177*       ADD_ARRAY_ELEMENT                                ~91     ~92, 'value'
        178*       SEND_VAL_EX                                              ~91
        179*       DO_FCALL                                      0  $93     
        180*       SEND_VAR                                                 $93
   53   181*       SEND_VAL                                                 <true>
        182*       DO_ICALL                                         $94     
   50   183*       ASSIGN                                                   !3, $94
   56   184*       ISSET_ISEMPTY_DIM_OBJ                         0  ~96     !3, 'code'
        185*       BOOL_NOT                                         ~97     ~96
        186*       JMPNZ_EX                                         ~97     ~97, ->191
        187*       FETCH_DIM_IS                                     ~98     !3, 'code'
        188*       ISSET_ISEMPTY_DIM_OBJ                         0  ~99     ~98, 'value'
        189*       BOOL_NOT                                         ~100    ~99
        190*       BOOL                                             ~97     ~100
        191*       JMPNZ_EX                                         ~97     ~97, ->196
        192*       FETCH_DIM_R                                      ~101    !3, 'code'
        193*       FETCH_DIM_R                                      ~102    ~101, 'value'
        194*       IS_NOT_EQUAL                                     ~103    ~102, 7
        195*       BOOL                                             ~97     ~103
        196*       JMPNZ_EX                                         ~97     ~97, ->200
        197*       ISSET_ISEMPTY_DIM_OBJ                         0  ~104    !3, 'data'
        198*       BOOL_NOT                                         ~105    ~104
        199*       BOOL                                             ~97     ~105
        200*       JMPNZ_EX                                         ~97     ~97, ->205
        201*       FETCH_DIM_IS                                     ~106    !3, 'data'
        202*       ISSET_ISEMPTY_DIM_OBJ                         0  ~107    ~106, 'token'
        203*       BOOL_NOT                                         ~108    ~107
        204*       BOOL                                             ~97     ~108
        205*       JMPZ                                                     ~97, ->213
   57   206*       NEW                                              $109    'Exception'
        207*       INIT_FCALL                                               'json_encode'
        208*       SEND_VAR                                                 !3
        209*       DO_ICALL                                         $110    
        210*       SEND_VAR_NO_REF_EX                                       $110
        211*       DO_FCALL                                      0          
        212*       THROW                                         0          $109
   60   213*       FETCH_DIM_R                                      ~112    !3, 'data'
        214*       FETCH_DIM_R                                      ~113    ~112, 'token'
        215*       ASSIGN                                                   !6, ~113
   63   216*       INIT_FCALL                                               'json_decode'
        217*       FETCH_THIS                                       $115    
        218*       INIT_METHOD_CALL                                         $115, 'curl'
        219*       SEND_VAL_EX                                              'user%2Fperson%2Fchange%2Fsecurity.action'
   64   220*       INIT_ARRAY                                       ~116    !6, 'token'
   65   221*       ADD_ARRAY_ELEMENT                                ~116    'SMS_CONFIRMATION', 'type'
   66   222*       JMPZ                                                     !5, ->225
        223*       QM_ASSIGN                                        ~117    'false'
        224*       JMP                                                      ->226
        225*       QM_ASSIGN                                        ~117    'true'
        226*       ADD_ARRAY_ELEMENT                                ~116    ~117, 'value'
        227*       SEND_VAL_EX                                              ~116
        228*       DO_FCALL                                      0  $118    
        229*       SEND_VAR                                                 $118
   67   230*       SEND_VAL                                                 <true>
        231*       DO_ICALL                                         $119    
   63   232*       ASSIGN                                                   !3, $119
   70   233*       ISSET_ISEMPTY_DIM_OBJ                         0  ~121    !3, 'code'
        234*       JMPZ_EX                                          ~121    ~121, ->238
        235*       FETCH_DIM_IS                                     ~122    !3, 'code'
        236*       ISSET_ISEMPTY_DIM_OBJ                         0  ~123    ~122, 'value'
        237*       BOOL                                             ~121    ~123
        238*       JMPZ_EX                                          ~121    ~121, ->243
        239*       FETCH_DIM_R                                      ~124    !3, 'code'
        240*       FETCH_DIM_R                                      ~125    ~124, 'value'
        241*       IS_EQUAL                                         ~126    ~125, 0
        242*       BOOL                                             ~121    ~126
        243*       JMPZ                                                     ~121, ->245
   71   244*       RETURN                                                   <true>
   74   245*       ISSET_ISEMPTY_DIM_OBJ                         0  ~127    !3, 'code'
        246*       BOOL_NOT                                         ~128    ~127
        247*       JMPNZ_EX                                         ~128    ~128, ->252
        248*       FETCH_DIM_IS                                     ~129    !3, 'code'
        249*       ISSET_ISEMPTY_DIM_OBJ                         0  ~130    ~129, 'value'
        250*       BOOL_NOT                                         ~131    ~130
        251*       BOOL                                             ~128    ~131
        252*       JMPNZ_EX                                         ~128    ~128, ->257
        253*       FETCH_DIM_R                                      ~132    !3, 'code'
        254*       FETCH_DIM_R                                      ~133    ~132, 'value'
        255*       IS_NOT_EQUAL                                     ~134    ~133, 4
        256*       BOOL                                             ~128    ~134
        257*       JMPNZ_EX                                         ~128    ~128, ->261
        258*       ISSET_ISEMPTY_DIM_OBJ                         0  ~135    !3, 'identifier'
        259*       BOOL_NOT                                         ~136    ~135
        260*       BOOL                                             ~128    ~136
        261*       JMPNZ_EX                                         ~128    ~128, ->265
        262*       FETCH_DIM_R                                      ~137    !3, 'identifier'
        263*       IS_SMALLER_OR_EQUAL                              ~138    ~137, 0
        264*       BOOL                                             ~128    ~138
        265*       JMPZ                                                     ~128, ->273
   75   266*       NEW                                              $139    'Exception'
        267*       INIT_FCALL                                               'json_encode'
        268*       SEND_VAR                                                 !3
        269*       DO_ICALL                                         $140    
        270*       SEND_VAR_NO_REF_EX                                       $140
        271*       DO_FCALL                                      0          
        272*       THROW                                         0          $139
   78   273*       FETCH_DIM_R                                      ~142    !3, 'identifier'
        274*       ASSIGN                                                   !7, ~142
   81   275*       FETCH_THIS                                       $144    
        276*       INIT_METHOD_CALL                                         $144, 'curl'
        277*       SEND_VAL_EX                                              'user%2Fconfirmation%2Fform.action'
   82   278*       INIT_ARRAY                                       ~145    !7, 'identifier'
   83   279*       ADD_ARRAY_ELEMENT                                ~145    !6, 'token'
   84   280*       ADD_ARRAY_ELEMENT                                ~145    'SMS_CONFIRMATION', 'type'
   85   281*       JMPZ                                                     !5, ->284
        282*       QM_ASSIGN                                        ~146    'false'
        283*       JMP                                                      ->285
        284*       QM_ASSIGN                                        ~146    'true'
        285*       ADD_ARRAY_ELEMENT                                ~145    ~146, 'value'
        286*       SEND_VAL_EX                                              ~145
        287*       DO_FCALL                                      0          
   88   288*       RETURN                                                   !7
        289*     > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
167.09 ms | 1420 KiB | 31 Q