3v4l.org

run code in 300+ PHP versions simultaneously
<?php ############################################ # # # ## ## ###### ##### #### ## ## # # #### ## ## ## ## ## ### ## # # ## #### ##### ## ## ## ### # # #### ## ## ## ## ## ## ## # # ## ## ##### ## ## #### ## ## # # # ############################################ # http://vk.com/id18471769 # ############################################ # Версия от 22.07.2013 # ############################################ class QIWI_LazyPay { public $iQiwiAccount, $aBalances = array( 'USD' => 0, 'RUB' => 0, 'EUR' => 0, 'KZT' => 0 ); private $sCookies = null; public function __construct( $iQiwiAccount, $sPassword, $sCookies = null ) { # Инициализация COOKIE'S : $this->sCookies = $sCookies; # Если COOKIE'S заполнены : if( !is_null( $sCookies ) ) { # Проверка авторизации кошельком : if( ($aResponse = @json_decode( $this->request( 'person/state.action', 'json=json' ), true )) !== false && is_array( $aResponse['data'] ) && isset( $aResponse['data']['person'] ) && isset( $aResponse['data']['balances'] ) && $aResponse['data']['person'] == $iQiwiAccount ) { $this->iQiwiAccount = $aResponse['data']['person']; foreach( $aResponse['data']['balances'] as $sEquivalent => $dBalance ) $this->aBalances[$sEquivalent] = $dBalance; return; } } # Получение токена авторизации : $sResponse = $this->request( 'auth/login.action', array( 'login' => '+'.$iQiwiAccount, 'password' => $sPassword ), array( CURLOPT_HEADER => true ) ); # Сохранение cookies : $this->sCookies = self::parseCookies( $sResponse ); # Парсинг данных токена : if( count( $sToken = explode( 'token":"', $sResponse ) ) < 2 ) throw new Exception( 'error parse token 1' ); $sToken = explode( '"', $sToken[1] ); $sToken = $sToken[0]; # Авторизация при помощи токена : $sResponse = $this->request( 'auth/login.action', array( 'login' => '+'.$iQiwiAccount, 'loginToken' => $sToken, 'password' => $sPassword, 'source' => 'MENU' ), array( CURLOPT_HEADER => true ) ); $this->sCookies = self::parseCookies( $sResponse ); $sResponse = trim( mb_substr( $sResponse, mb_strpos( $sResponse, '{' ) ) ); if( ($aResponse = @json_decode( $sResponse, true )) === false ) throw new Exception( 'internal error' ); # Проверка авторизации кошельком : if( !isset( $aResponse['code'] ) || !isset( $aResponse['code']['value'] ) || $aResponse['code']['value'] != 0 ) throw new Exception( isset( $aResponse['message'] ) ? $aResponse['message'] : 'authorize error' ); # Получение информации об qiwi.кошельке : if( ($aResponse = @json_decode( $this->request( 'person/state.action', 'json=json' ), true )) === false ) throw new Exception( 'fatal error' ); if( !is_array( $aResponse['data'] ) || !isset( $aResponse['data']['person'] ) || !isset( $aResponse['data']['balances'] ) ) throw new Exception( var_export( $aResponse, true ) ); $this->iQiwiAccount = $aResponse['data']['person']; foreach( $aResponse['data']['balances'] as $sEquivalent => $dBalance ) $this->aBalances[$sEquivalent] = $dBalance; } public function GetHistory( $sStartDate, $sFinishDate ) { # Получение списка транзакций : $sResult = $this->request( 'user/report/list.action?daterange=true&start='.$sStartDate.'&finish='.$sFinishDate ); $aTransactions = array(); foreach( explode( '</div><div class="reportsLine ', str_replace( '> <', '><', preg_replace( '!\s+!u', ' ', $sResult ) ) ) as $iKey => $sValue ) { if( $iKey == 0 ) continue; $aData = array(); # Получение суммы счета : $aData['iID'] = explode( 'class="transaction">', $sValue ); if( count( $aData['iID'] ) < 2 ) continue; $aData['iID'] = explode( '</', $aData['iID'][1] ); $aData['iID'] = trim( $aData['iID'][0] ); # Получение даты и время : $aData['sDate'] = explode( 'class="date">', $sValue ); $aData['sDate'] = explode( '</', $aData['sDate'][1] ); $aData['sDate'] = trim( $aData['sDate'][0] ); $aData['sTime'] = explode( 'class="time">', $sValue ); $aData['sTime'] = explode( '</', $aData['sTime'][1] ); $aData['sTime'] = trim( $aData['sTime'][0] ); # Получение суммы и валюты счета : $aData['sAmount'] = explode( 'class="originalExpense"><span>', $sValue ); $aData['sAmount'] = explode( '</', $aData['sAmount'][1] ); $aData['sAmount'] = trim( $aData['sAmount'][0] ); # Получение суммы счета : $aData['dAmount'] = preg_replace( '/[^0-9\.]+/', '', str_replace( ',', '.', $aData['sAmount'] ) ) - 0; # Получение валюты счета : $aData['sCurrency'] = mb_strpos( $aData['sAmount'], 'руб.' ) !== false ? 'RUB' : (mb_strpos( $aData['sAmount'], 'долл.' ) !== false ? 'USD' : (mb_strpos( $aData['sAmount'], 'тенге.' ) !== false ? 'KZT' : 'NAN')); # Получение номера телефона корреспондента : $aData['iOpponentPhone'] = explode( 'class="opNumber">', $sValue ); $aData['iOpponentPhone'] = explode( '</', $aData['iOpponentPhone'][1] ); $aData['iOpponentPhone'] = trim( str_replace( '+', '', $aData['iOpponentPhone'][0] ) ); # Получение примечания : $aData['sComment'] = explode( 'class="comment">', $sValue ); $aData['sComment'] = explode( '</', $aData['sComment'][1] ); $aData['sComment'] = html_entity_decode( trim( $aData['sComment'][0] ), ENT_QUOTES, 'UTF-8' ); # Прибыль или расход ? $aData['sType'] = mb_strpos( $sValue, 'IncomeWithExpend expenditure' ) !== false ? 'EXPENDITURE' : (mb_strpos( $sValue, 'IncomeWithExpend income' ) !== false ? 'INCOME' : 'NAN'); # Получение статуса транзакции : $aData['sStatus'] = explode( '"', $sValue ); $aData['sStatus'] = trim( $aData['sStatus'][0] ); # Дополнительные проверки : if( $aData['iID'] == false ) { $aData['iID'] = explode( '{"txn":', $sValue ); $aData['iID'] = explode( '}', $aData['iID'][1] ); $aData['iID'] = $aData['iID'][0]; } $aTransactions['ID-'.$aData['iID']] = $aData; } return $aTransactions; } private function request( $sPath, $mPOST = null, $aOptions = array() ) { $oCURL = curl_init( 'https://w.qiwi.com/'.$sPath ); curl_setopt_array( $oCURL, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_COOKIE => $this->sCookies, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0', CURLOPT_HTTPHEADER => array( 'Accept: application/json, text/javascript, */*; q=0.01', 'X-Requested-With: XMLHttpRequest' ), CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false ) ); if( !is_null( $mPOST ) ) curl_setopt_array( $oCURL, array( CURLOPT_POST => true, CURLOPT_POSTFIELDS => is_array( $mPOST ) ? http_build_query( $mPOST ) : $mPOST, ) ); if( count( $aOptions ) ) curl_setopt_array( $oCURL, $aOptions ); $sResponse = curl_exec( $oCURL ); if( $sResponse === false || curl_errno( $oCURL ) != 0 ) throw new Exception( curl_error( $oCURL ), curl_errno( $oCURL ) ); curl_close( $oCURL ); return $sResponse; } private static function parseCookies( $sXML ) { $aCookies = array(); preg_match_all( '|Set-Cookie: (.*);|U', $sXML, $aCookies ); return implode( ';', $aCookies[1] ); } } ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/aoten
function name:  (null)
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  168     0  E > > RETURN                                                   1

Class QIWI_LazyPay:
Function __construct:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 53
Branch analysis from position: 8
2 jumps found. (Code = 46) Position 1 = 21, Position 2 = 24
Branch analysis from position: 21
2 jumps found. (Code = 46) Position 1 = 25, Position 2 = 28
Branch analysis from position: 25
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 32
Branch analysis from position: 29
2 jumps found. (Code = 46) Position 1 = 33, Position 2 = 37
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 53
Branch analysis from position: 38
2 jumps found. (Code = 77) Position 1 = 45, Position 2 = 51
Branch analysis from position: 45
2 jumps found. (Code = 78) Position 1 = 46, Position 2 = 51
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
Branch analysis from position: 51
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 51
Branch analysis from position: 53
2 jumps found. (Code = 43) Position 1 = 77, Position 2 = 81
Branch analysis from position: 77
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 81
2 jumps found. (Code = 43) Position 1 = 128, Position 2 = 132
Branch analysis from position: 128
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 132
2 jumps found. (Code = 47) Position 1 = 135, Position 2 = 139
Branch analysis from position: 135
2 jumps found. (Code = 47) Position 1 = 140, Position 2 = 144
Branch analysis from position: 140
2 jumps found. (Code = 43) Position 1 = 145, Position 2 = 155
Branch analysis from position: 145
2 jumps found. (Code = 43) Position 1 = 148, Position 2 = 151
Branch analysis from position: 148
1 jumps found. (Code = 42) Position 1 = 152
Branch analysis from position: 152
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 151
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 155
2 jumps found. (Code = 43) Position 1 = 168, Position 2 = 172
Branch analysis from position: 168
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 172
2 jumps found. (Code = 47) Position 1 = 176, Position 2 = 180
Branch analysis from position: 176
2 jumps found. (Code = 47) Position 1 = 181, Position 2 = 185
Branch analysis from position: 181
2 jumps found. (Code = 43) Position 1 = 186, Position 2 = 194
Branch analysis from position: 186
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 194
2 jumps found. (Code = 77) Position 1 = 201, Position 2 = 207
Branch analysis from position: 201
2 jumps found. (Code = 78) Position 1 = 202, Position 2 = 207
Branch analysis from position: 202
1 jumps found. (Code = 42) Position 1 = 201
Branch analysis from position: 201
Branch analysis from position: 207
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 207
Branch analysis from position: 185
Branch analysis from position: 180
Branch analysis from position: 144
Branch analysis from position: 139
Branch analysis from position: 37
Branch analysis from position: 32
Branch analysis from position: 28
Branch analysis from position: 24
Branch analysis from position: 53
filename:       /in/aoten
function name:  __construct
number of ops:  209
compiled vars:  !0 = $iQiwiAccount, !1 = $sPassword, !2 = $sCookies, !3 = $aResponse, !4 = $dBalance, !5 = $sEquivalent, !6 = $sResponse, !7 = $sToken
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   21     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      null
   24     3        ASSIGN_OBJ                                               'sCookies'
          4        OP_DATA                                                  !2
   27     5        TYPE_CHECK                                    2  ~9      !2
          6        BOOL_NOT                                         ~10     ~9
          7      > JMPZ                                                     ~10, ->53
   30     8    >   BEGIN_SILENCE                                    ~11     
          9        INIT_FCALL                                               'json_decode'
         10        INIT_METHOD_CALL                                         'request'
         11        SEND_VAL_EX                                              'person%2Fstate.action'
         12        SEND_VAL_EX                                              'json%3Djson'
         13        DO_FCALL                                      0  $12     
         14        SEND_VAR                                                 $12
         15        SEND_VAL                                                 <true>
         16        DO_ICALL                                         $13     
         17        END_SILENCE                                              ~11
         18        ASSIGN                                           ~14     !3, $13
         19        TYPE_CHECK                                  1018  ~15     ~14
         20      > JMPZ_EX                                          ~15     ~15, ->24
         21    >   FETCH_DIM_R                                      ~16     !3, 'data'
         22        TYPE_CHECK                                  128  ~17     ~16
         23        BOOL                                             ~15     ~17
         24    > > JMPZ_EX                                          ~15     ~15, ->28
         25    >   FETCH_DIM_IS                                     ~18     !3, 'data'
         26        ISSET_ISEMPTY_DIM_OBJ                         0  ~19     ~18, 'person'
         27        BOOL                                             ~15     ~19
         28    > > JMPZ_EX                                          ~15     ~15, ->32
         29    >   FETCH_DIM_IS                                     ~20     !3, 'data'
         30        ISSET_ISEMPTY_DIM_OBJ                         0  ~21     ~20, 'balances'
         31        BOOL                                             ~15     ~21
         32    > > JMPZ_EX                                          ~15     ~15, ->37
         33    >   FETCH_DIM_R                                      ~22     !3, 'data'
         34        FETCH_DIM_R                                      ~23     ~22, 'person'
         35        IS_EQUAL                                         ~24     !0, ~23
         36        BOOL                                             ~15     ~24
         37    > > JMPZ                                                     ~15, ->53
   31    38    >   FETCH_DIM_R                                      ~26     !3, 'data'
         39        FETCH_DIM_R                                      ~27     ~26, 'person'
         40        ASSIGN_OBJ                                               'iQiwiAccount'
         41        OP_DATA                                                  ~27
   32    42        FETCH_DIM_R                                      ~28     !3, 'data'
         43        FETCH_DIM_R                                      ~29     ~28, 'balances'
         44      > FE_RESET_R                                       $30     ~29, ->51
         45    > > FE_FETCH_R                                       ~31     $30, !4, ->51
         46    >   ASSIGN                                                   !5, ~31
   33    47        FETCH_OBJ_W                                      $33     'aBalances'
         48        ASSIGN_DIM                                               $33, !5
         49        OP_DATA                                                  !4
   32    50      > JMP                                                      ->45
         51    >   FE_FREE                                                  $30
   34    52      > RETURN                                                   null
   39    53    >   INIT_METHOD_CALL                                         'request'
         54        SEND_VAL_EX                                              'auth%2Flogin.action'
         55        CONCAT                                           ~35     '%2B', !0
         56        INIT_ARRAY                                       ~36     ~35, 'login'
         57        ADD_ARRAY_ELEMENT                                ~36     !1, 'password'
         58        SEND_VAL_EX                                              ~36
         59        FETCH_CONSTANT                                   ~37     'CURLOPT_HEADER'
         60        INIT_ARRAY                                       ~38     <true>, ~37
         61        SEND_VAL_EX                                              ~38
         62        DO_FCALL                                      0  $39     
         63        ASSIGN                                                   !6, $39
   42    64        INIT_STATIC_METHOD_CALL                                  'parseCookies'
         65        SEND_VAR_EX                                              !6
         66        DO_FCALL                                      0  $42     
         67        ASSIGN_OBJ                                               'sCookies'
         68        OP_DATA                                                  $42
   45    69        INIT_FCALL                                               'explode'
         70        SEND_VAL                                                 'token%22%3A%22'
         71        SEND_VAR                                                 !6
         72        DO_ICALL                                         $43     
         73        ASSIGN                                           ~44     !7, $43
         74        COUNT                                            ~45     ~44
         75        IS_SMALLER                                               ~45, 2
         76      > JMPZ                                                     ~46, ->81
   46    77    >   NEW                                              $47     'Exception'
         78        SEND_VAL_EX                                              'error+parse+token+1'
         79        DO_FCALL                                      0          
         80      > THROW                                         0          $47
   47    81    >   INIT_FCALL                                               'explode'
         82        SEND_VAL                                                 '%22'
         83        FETCH_DIM_R                                      ~49     !7, 1
         84        SEND_VAL                                                 ~49
         85        DO_ICALL                                         $50     
         86        ASSIGN                                                   !7, $50
   48    87        FETCH_DIM_R                                      ~52     !7, 0
         88        ASSIGN                                                   !7, ~52
   51    89        INIT_METHOD_CALL                                         'request'
         90        SEND_VAL_EX                                              'auth%2Flogin.action'
         91        CONCAT                                           ~54     '%2B', !0
         92        INIT_ARRAY                                       ~55     ~54, 'login'
         93        ADD_ARRAY_ELEMENT                                ~55     !7, 'loginToken'
         94        ADD_ARRAY_ELEMENT                                ~55     !1, 'password'
         95        ADD_ARRAY_ELEMENT                                ~55     'MENU', 'source'
         96        SEND_VAL_EX                                              ~55
         97        FETCH_CONSTANT                                   ~56     'CURLOPT_HEADER'
         98        INIT_ARRAY                                       ~57     <true>, ~56
         99        SEND_VAL_EX                                              ~57
        100        DO_FCALL                                      0  $58     
        101        ASSIGN                                                   !6, $58
   52   102        INIT_STATIC_METHOD_CALL                                  'parseCookies'
        103        SEND_VAR_EX                                              !6
        104        DO_FCALL                                      0  $61     
        105        ASSIGN_OBJ                                               'sCookies'
        106        OP_DATA                                                  $61
   53   107        INIT_FCALL                                               'trim'
        108        INIT_FCALL                                               'mb_substr'
        109        SEND_VAR                                                 !6
        110        INIT_FCALL                                               'mb_strpos'
        111        SEND_VAR                                                 !6
        112        SEND_VAL                                                 '%7B'
        113        DO_ICALL                                         $62     
        114        SEND_VAR                                                 $62
        115        DO_ICALL                                         $63     
        116        SEND_VAR                                                 $63
        117        DO_ICALL                                         $64     
        118        ASSIGN                                                   !6, $64
   54   119        BEGIN_SILENCE                                    ~66     
        120        INIT_FCALL                                               'json_decode'
        121        SEND_VAR                                                 !6
        122        SEND_VAL                                                 <true>
        123        DO_ICALL                                         $67     
        124        END_SILENCE                                              ~66
        125        ASSIGN                                           ~68     !3, $67
        126        TYPE_CHECK                                    4          ~68
        127      > JMPZ                                                     ~69, ->132
   55   128    >   NEW                                              $70     'Exception'
        129        SEND_VAL_EX                                              'internal+error'
        130        DO_FCALL                                      0          
        131      > THROW                                         0          $70
   58   132    >   ISSET_ISEMPTY_DIM_OBJ                         0  ~72     !3, 'code'
        133        BOOL_NOT                                         ~73     ~72
        134      > JMPNZ_EX                                         ~73     ~73, ->139
        135    >   FETCH_DIM_IS                                     ~74     !3, 'code'
        136        ISSET_ISEMPTY_DIM_OBJ                         0  ~75     ~74, 'value'
        137        BOOL_NOT                                         ~76     ~75
        138        BOOL                                             ~73     ~76
        139    > > JMPNZ_EX                                         ~73     ~73, ->144
        140    >   FETCH_DIM_R                                      ~77     !3, 'code'
        141        FETCH_DIM_R                                      ~78     ~77, 'value'
        142        IS_NOT_EQUAL                                     ~79     ~78, 0
        143        BOOL                                             ~73     ~79
        144    > > JMPZ                                                     ~73, ->155
   59   145    >   NEW                                              $80     'Exception'
        146        ISSET_ISEMPTY_DIM_OBJ                         0          !3, 'message'
        147      > JMPZ                                                     ~81, ->151
        148    >   FETCH_DIM_R                                      ~82     !3, 'message'
        149        QM_ASSIGN                                        ~83     ~82
        150      > JMP                                                      ->152
        151    >   QM_ASSIGN                                        ~83     'authorize+error'
        152    >   SEND_VAL_EX                                              ~83
        153        DO_FCALL                                      0          
        154      > THROW                                         0          $80
   62   155    >   BEGIN_SILENCE                                    ~85     
        156        INIT_FCALL                                               'json_decode'
        157        INIT_METHOD_CALL                                         'request'
        158        SEND_VAL_EX                                              'person%2Fstate.action'
        159        SEND_VAL_EX                                              'json%3Djson'
        160        DO_FCALL                                      0  $86     
        161        SEND_VAR                                                 $86
        162        SEND_VAL                                                 <true>
        163        DO_ICALL                                         $87     
        164        END_SILENCE                                              ~85
        165        ASSIGN                                           ~88     !3, $87
        166        TYPE_CHECK                                    4          ~88
        167      > JMPZ                                                     ~89, ->172
   63   168    >   NEW                                              $90     'Exception'
        169        SEND_VAL_EX                                              'fatal+error'
        170        DO_FCALL                                      0          
        171      > THROW                                         0          $90
   64   172    >   FETCH_DIM_R                                      ~92     !3, 'data'
        173        TYPE_CHECK                                  128  ~93     ~92
        174        BOOL_NOT                                         ~94     ~93
        175      > JMPNZ_EX                                         ~94     ~94, ->180
        176    >   FETCH_DIM_IS                                     ~95     !3, 'data'
        177        ISSET_ISEMPTY_DIM_OBJ                         0  ~96     ~95, 'person'
        178        BOOL_NOT                                         ~97     ~96
        179        BOOL                                             ~94     ~97
        180    > > JMPNZ_EX                                         ~94     ~94, ->185
        181    >   FETCH_DIM_IS                                     ~98     !3, 'data'
        182        ISSET_ISEMPTY_DIM_OBJ                         0  ~99     ~98, 'balances'
        183        BOOL_NOT                                         ~100    ~99
        184        BOOL                                             ~94     ~100
        185    > > JMPZ                                                     ~94, ->194
   65   186    >   NEW                                              $101    'Exception'
        187        INIT_FCALL                                               'var_export'
        188        SEND_VAR                                                 !3
        189        SEND_VAL                                                 <true>
        190        DO_ICALL                                         $102    
        191        SEND_VAR_NO_REF_EX                                       $102
        192        DO_FCALL                                      0          
        193      > THROW                                         0          $101
   66   194    >   FETCH_DIM_R                                      ~105    !3, 'data'
        195        FETCH_DIM_R                                      ~106    ~105, 'person'
        196        ASSIGN_OBJ                                               'iQiwiAccount'
        197        OP_DATA                                                  ~106
   67   198        FETCH_DIM_R                                      ~107    !3, 'data'
        199        FETCH_DIM_R                                      ~108    ~107, 'balances'
        200      > FE_RESET_R                                       $109    ~108, ->207
        201    > > FE_FETCH_R                                       ~110    $109, !4, ->207
        202    >   ASSIGN                                                   !5, ~110
   68   203        FETCH_OBJ_W                                      $112    'aBalances'
        204        ASSIGN_DIM                                               $112, !5
        205        OP_DATA                                                  !4
   67   206      > JMP                                                      ->201
        207    >   FE_FREE                                                  $109
   69   208      > RETURN                                                   null

End of function __construct

Function gethistory:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 25, Position 2 = 277
Branch analysis from position: 25
2 jumps found. (Code = 78) Position 1 = 26, Position 2 = 277
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 30
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
Branch analysis from position: 30
2 jumps found. (Code = 43) Position 1 = 41, Position 2 = 42
Branch analysis from position: 41
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
Branch analysis from position: 42
2 jumps found. (Code = 43) Position 1 = 141, Position 2 = 143
Branch analysis from position: 141
1 jumps found. (Code = 42) Position 1 = 164
Branch analysis from position: 164
2 jumps found. (Code = 43) Position 1 = 224, Position 2 = 226
Branch analysis from position: 224
1 jumps found. (Code = 42) Position 1 = 236
Branch analysis from position: 236
2 jumps found. (Code = 43) Position 1 = 254, Position 2 = 272
Branch analysis from position: 254
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
Branch analysis from position: 272
Branch analysis from position: 226
2 jumps found. (Code = 43) Position 1 = 232, Position 2 = 234
Branch analysis from position: 232
1 jumps found. (Code = 42) Position 1 = 235
Branch analysis from position: 235
2 jumps found. (Code = 43) Position 1 = 254, Position 2 = 272
Branch analysis from position: 254
Branch analysis from position: 272
Branch analysis from position: 234
2 jumps found. (Code = 43) Position 1 = 254, Position 2 = 272
Branch analysis from position: 254
Branch analysis from position: 272
Branch analysis from position: 143
2 jumps found. (Code = 43) Position 1 = 150, Position 2 = 152
Branch analysis from position: 150
1 jumps found. (Code = 42) Position 1 = 163
Branch analysis from position: 163
2 jumps found. (Code = 43) Position 1 = 224, Position 2 = 226
Branch analysis from position: 224
Branch analysis from position: 226
Branch analysis from position: 152
2 jumps found. (Code = 43) Position 1 = 159, Position 2 = 161
Branch analysis from position: 159
1 jumps found. (Code = 42) Position 1 = 162
Branch analysis from position: 162
2 jumps found. (Code = 43) Position 1 = 224, Position 2 = 226
Branch analysis from position: 224
Branch analysis from position: 226
Branch analysis from position: 161
2 jumps found. (Code = 43) Position 1 = 224, Position 2 = 226
Branch analysis from position: 224
Branch analysis from position: 226
Branch analysis from position: 277
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 277
filename:       /in/aoten
function name:  GetHistory
number of ops:  280
compiled vars:  !0 = $sStartDate, !1 = $sFinishDate, !2 = $sResult, !3 = $aTransactions, !4 = $sValue, !5 = $iKey, !6 = $aData
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   70     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   73     2        INIT_METHOD_CALL                                         'request'
          3        CONCAT                                           ~7      'user%2Freport%2Flist.action%3Fdaterange%3Dtrue%26start%3D', !0
          4        CONCAT                                           ~8      ~7, '%26finish%3D'
          5        CONCAT                                           ~9      ~8, !1
          6        SEND_VAL_EX                                              ~9
          7        DO_FCALL                                      0  $10     
          8        ASSIGN                                                   !2, $10
   75     9        ASSIGN                                                   !3, <array>
   76    10        INIT_FCALL                                               'explode'
         11        SEND_VAL                                                 '%3C%2Fdiv%3E%3Cdiv+class%3D%22reportsLine+'
         12        INIT_FCALL                                               'str_replace'
         13        SEND_VAL                                                 '%3E+%3C'
         14        SEND_VAL                                                 '%3E%3C'
         15        INIT_FCALL                                               'preg_replace'
         16        SEND_VAL                                                 '%21%5Cs%2B%21u'
         17        SEND_VAL                                                 '+'
         18        SEND_VAR                                                 !2
         19        DO_ICALL                                         $13     
         20        SEND_VAR                                                 $13
         21        DO_ICALL                                         $14     
         22        SEND_VAR                                                 $14
         23        DO_ICALL                                         $15     
         24      > FE_RESET_R                                       $16     $15, ->277
         25    > > FE_FETCH_R                                       ~17     $16, !4, ->277
         26    >   ASSIGN                                                   !5, ~17
   77    27        IS_EQUAL                                                 !5, 0
         28      > JMPZ                                                     ~19, ->30
   78    29    > > JMP                                                      ->25
   80    30    >   ASSIGN                                                   !6, <array>
   83    31        INIT_FCALL                                               'explode'
         32        SEND_VAL                                                 'class%3D%22transaction%22%3E'
         33        SEND_VAR                                                 !4
         34        DO_ICALL                                         $22     
         35        ASSIGN_DIM                                               !6, 'iID'
         36        OP_DATA                                                  $22
   84    37        FETCH_DIM_R                                      ~23     !6, 'iID'
         38        COUNT                                            ~24     ~23
         39        IS_SMALLER                                               ~24, 2
         40      > JMPZ                                                     ~25, ->42
   85    41    > > JMP                                                      ->25
   86    42    >   INIT_FCALL                                               'explode'
         43        SEND_VAL                                                 '%3C%2F'
         44        FETCH_DIM_R                                      ~27     !6, 'iID'
         45        FETCH_DIM_R                                      ~28     ~27, 1
         46        SEND_VAL                                                 ~28
         47        DO_ICALL                                         $29     
         48        ASSIGN_DIM                                               !6, 'iID'
         49        OP_DATA                                                  $29
   87    50        INIT_FCALL                                               'trim'
         51        FETCH_DIM_R                                      ~31     !6, 'iID'
         52        FETCH_DIM_R                                      ~32     ~31, 0
         53        SEND_VAL                                                 ~32
         54        DO_ICALL                                         $33     
         55        ASSIGN_DIM                                               !6, 'iID'
         56        OP_DATA                                                  $33
   90    57        INIT_FCALL                                               'explode'
         58        SEND_VAL                                                 'class%3D%22date%22%3E'
         59        SEND_VAR                                                 !4
         60        DO_ICALL                                         $35     
         61        ASSIGN_DIM                                               !6, 'sDate'
         62        OP_DATA                                                  $35
   91    63        INIT_FCALL                                               'explode'
         64        SEND_VAL                                                 '%3C%2F'
         65        FETCH_DIM_R                                      ~37     !6, 'sDate'
         66        FETCH_DIM_R                                      ~38     ~37, 1
         67        SEND_VAL                                                 ~38
         68        DO_ICALL                                         $39     
         69        ASSIGN_DIM                                               !6, 'sDate'
         70        OP_DATA                                                  $39
   92    71        INIT_FCALL                                               'trim'
         72        FETCH_DIM_R                                      ~41     !6, 'sDate'
         73        FETCH_DIM_R                                      ~42     ~41, 0
         74        SEND_VAL                                                 ~42
         75        DO_ICALL                                         $43     
         76        ASSIGN_DIM                                               !6, 'sDate'
         77        OP_DATA                                                  $43
   93    78        INIT_FCALL                                               'explode'
         79        SEND_VAL                                                 'class%3D%22time%22%3E'
         80        SEND_VAR                                                 !4
         81        DO_ICALL                                         $45     
         82        ASSIGN_DIM                                               !6, 'sTime'
         83        OP_DATA                                                  $45
   94    84        INIT_FCALL                                               'explode'
         85        SEND_VAL                                                 '%3C%2F'
         86        FETCH_DIM_R                                      ~47     !6, 'sTime'
         87        FETCH_DIM_R                                      ~48     ~47, 1
         88        SEND_VAL                                                 ~48
         89        DO_ICALL                                         $49     
         90        ASSIGN_DIM                                               !6, 'sTime'
         91        OP_DATA                                                  $49
   95    92        INIT_FCALL                                               'trim'
         93        FETCH_DIM_R                                      ~51   

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
174.15 ms | 1428 KiB | 29 Q