3v4l.org

run code in 300+ PHP versions simultaneously
<?php $ffile = "https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=5"; $ch = curl_init($ffile); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Uncomment this for Windows. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_URL, $ffile); $result = curl_exec($ch); //echo '<pre>'; //print_r(curl_getinfo($ch)); //echo '</pre>'; echo 'Errors: ' . curl_errno($ch) . ' - ' . curl_error($ch) . '<br><br>'; if (curl_errno($ch) == 0) { $sload = 0; } else { exit ('!!! Не удалось открыть файл '. $ffile); } curl_close ($ch); if ($sload == 0) { $exchangerates = simplexml_load_file($ffile); // var_dump($xml); // print_r($exchangerates); } else { exit ('Не удалось открыть файл '. $ffile); } $BabosU = 100; foreach ($exchangerates->row as $kurs) { echo $kurs->exchangerate["sale"], ' - ', $kurs->exchangerate["buy"], ' - ', $kurs->exchangerate["base_ccy"], ' - ', $kurs->exchangerate["ccy"], '<br>'; if ($kurs->exchangerate["ccy"] == 'RUR') { $KursBuy = (float) $kurs->exchangerate["buy"]; $KursSale = (float) $kurs->exchangerate["sale"]; } else {} } $BabosR = $BabosU/$KursBuy; echo '<br>','Покупка ',$KursBuy,' Продажа ',$KursSale,'<br>'; echo '<br>','Гривня ',$BabosU,' Рубль ',ceil($BabosR),'<br>'; ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 61, Position 2 = 63
Branch analysis from position: 61
1 jumps found. (Code = 42) Position 1 = 65
Branch analysis from position: 65
2 jumps found. (Code = 43) Position 1 = 70, Position 2 = 75
Branch analysis from position: 70
1 jumps found. (Code = 42) Position 1 = 77
Branch analysis from position: 77
2 jumps found. (Code = 77) Position 1 = 80, Position 2 = 111
Branch analysis from position: 80
2 jumps found. (Code = 78) Position 1 = 81, Position 2 = 111
Branch analysis from position: 81
2 jumps found. (Code = 43) Position 1 = 101, Position 2 = 110
Branch analysis from position: 101
1 jumps found. (Code = 42) Position 1 = 110
Branch analysis from position: 110
1 jumps found. (Code = 42) Position 1 = 80
Branch analysis from position: 80
Branch analysis from position: 110
Branch analysis from position: 111
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 111
Branch analysis from position: 75
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 63
1 jumps found. (Code = 79) Position 1 = -2
filename:       /in/2mejE
function name:  (null)
number of ops:  130
compiled vars:  !0 = $ffile, !1 = $ch, !2 = $result, !3 = $sload, !4 = $exchangerates, !5 = $BabosU, !6 = $kurs, !7 = $KursBuy, !8 = $KursSale, !9 = $BabosR
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'https%3A%2F%2Fapi.privatbank.ua%2Fp24api%2Fpubinfo%3Fexchange%26coursid%3D5'
    3     1        INIT_FCALL_BY_NAME                                       'curl_init'
          2        SEND_VAR_EX                                              !0
          3        DO_FCALL                                      0  $11     
          4        ASSIGN                                                   !1, $11
    5     5        INIT_FCALL_BY_NAME                                       'curl_setopt'
          6        SEND_VAR_EX                                              !1
          7        FETCH_CONSTANT                                   ~13     'CURLOPT_TIMEOUT'
          8        SEND_VAL_EX                                              ~13
          9        SEND_VAL_EX                                              30
         10        DO_FCALL                                      0          
    6    11        INIT_FCALL_BY_NAME                                       'curl_setopt'
         12        SEND_VAR_EX                                              !1
         13        FETCH_CONSTANT                                   ~15     'CURLOPT_HEADER'
         14        SEND_VAL_EX                                              ~15
         15        SEND_VAL_EX                                              1
         16        DO_FCALL                                      0          
    7    17        INIT_FCALL_BY_NAME                                       'curl_setopt'
         18        SEND_VAR_EX                                              !1
         19        FETCH_CONSTANT                                   ~17     'CURLOPT_VERBOSE'
         20        SEND_VAL_EX                                              ~17
         21        SEND_VAL_EX                                              1
         22        DO_FCALL                                      0          
    8    23        INIT_FCALL_BY_NAME                                       'curl_setopt'
         24        SEND_VAR_EX                                              !1
         25        FETCH_CONSTANT                                   ~19     'CURLOPT_RETURNTRANSFER'
         26        SEND_VAL_EX                                              ~19
         27        SEND_VAL_EX                                              1
         28        DO_FCALL                                      0          
   12    29        INIT_FCALL_BY_NAME                                       'curl_setopt'
         30        SEND_VAR_EX                                              !1
         31        FETCH_CONSTANT                                   ~21     'CURLOPT_SSL_VERIFYPEER'
         32        SEND_VAL_EX                                              ~21
         33        SEND_VAL_EX                                              0
         34        DO_FCALL                                      0          
   14    35        INIT_FCALL_BY_NAME                                       'curl_setopt'
         36        SEND_VAR_EX                                              !1
         37        FETCH_CONSTANT                                   ~23     'CURLOPT_URL'
         38        SEND_VAL_EX                                              ~23
         39        SEND_VAR_EX                                              !0
         40        DO_FCALL                                      0          
   16    41        INIT_FCALL_BY_NAME                                       'curl_exec'
         42        SEND_VAR_EX                                              !1
         43        DO_FCALL                                      0  $25     
         44        ASSIGN                                                   !2, $25
   23    45        INIT_FCALL_BY_NAME                                       'curl_errno'
         46        SEND_VAR_EX                                              !1
         47        DO_FCALL                                      0  $27     
         48        CONCAT                                           ~28     'Errors%3A+', $27
         49        CONCAT                                           ~29     ~28, '+-+'
         50        INIT_FCALL_BY_NAME                                       'curl_error'
         51        SEND_VAR_EX                                              !1
         52        DO_FCALL                                      0  $30     
         53        CONCAT                                           ~31     ~29, $30
         54        CONCAT                                           ~32     ~31, '%3Cbr%3E%3Cbr%3E'
         55        ECHO                                                     ~32
   25    56        INIT_FCALL_BY_NAME                                       'curl_errno'
         57        SEND_VAR_EX                                              !1
         58        DO_FCALL                                      0  $33     
         59        IS_EQUAL                                                 $33, 0
         60      > JMPZ                                                     ~34, ->63
   26    61    >   ASSIGN                                                   !3, 0
         62      > JMP                                                      ->65
   28    63    >   CONCAT                                           ~36     '%21%21%21+%D0%9D%D0%B5+%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C+%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C+%D1%84%D0%B0%D0%B9%D0%BB+', !0
         64      > EXIT                                                     ~36
   31    65    >   INIT_FCALL_BY_NAME                                       'curl_close'
         66        SEND_VAR_EX                                              !1
         67        DO_FCALL                                      0          
   33    68        IS_EQUAL                                                 !3, 0
         69      > JMPZ                                                     ~38, ->75
   34    70    >   INIT_FCALL                                               'simplexml_load_file'
         71        SEND_VAR                                                 !0
         72        DO_ICALL                                         $39     
         73        ASSIGN                                                   !4, $39
         74      > JMP                                                      ->77
   40    75    >   CONCAT                                           ~41     '%D0%9D%D0%B5+%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C+%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C+%D1%84%D0%B0%D0%B9%D0%BB+', !0
         76      > EXIT                                                     ~41
   42    77    >   ASSIGN                                                   !5, 100
   44    78        FETCH_OBJ_R                                      ~43     !4, 'row'
         79      > FE_RESET_R                                       $44     ~43, ->111
         80    > > FE_FETCH_R                                               $44, !6, ->111
   45    81    >   FETCH_OBJ_R                                      ~45     !6, 'exchangerate'
         82        FETCH_DIM_R                                      ~46     ~45, 'sale'
         83        ECHO                                                     ~46
   46    84        ECHO                                                     '+-+'
         85        FETCH_OBJ_R                                      ~47     !6, 'exchangerate'
         86        FETCH_DIM_R                                      ~48     ~47, 'buy'
         87        ECHO                                                     ~48
   47    88        ECHO                                                     '+-+'
         89        FETCH_OBJ_R                                      ~49     !6, 'exchangerate'
         90        FETCH_DIM_R                                      ~50     ~49, 'base_ccy'
         91        ECHO                                                     ~50
   48    92        ECHO                                                     '+-+'
         93        FETCH_OBJ_R                                      ~51     !6, 'exchangerate'
         94        FETCH_DIM_R                                      ~52     ~51, 'ccy'
         95        ECHO                                                     ~52
   49    96        ECHO                                                     '%3Cbr%3E'
   51    97        FETCH_OBJ_R                                      ~53     !6, 'exchangerate'
         98        FETCH_DIM_R                                      ~54     ~53, 'ccy'
         99        IS_EQUAL                                                 ~54, 'RUR'
        100      > JMPZ                                                     ~55, ->110
   52   101    >   FETCH_OBJ_R                                      ~56     !6, 'exchangerate'
        102        FETCH_DIM_R                                      ~57     ~56, 'buy'
        103        CAST                                          5  ~58     ~57
        104        ASSIGN                                                   !7, ~58
   53   105        FETCH_OBJ_R                                      ~60     !6, 'exchangerate'
        106        FETCH_DIM_R                                      ~61     ~60, 'sale'
        107        CAST                                          5  ~62     ~61
        108        ASSIGN                                                   !8, ~62
        109      > JMP                                                      ->110
   44   110    > > JMP                                                      ->80
        111    >   FE_FREE                                                  $44
   57   112        DIV                                              ~64     !5, !7
        113        ASSIGN                                                   !9, ~64
   59   114        ECHO                                                     '%3Cbr%3E'
        115        ECHO                                                     '%D0%9F%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B0+'
        116        ECHO                                                     !7
        117        ECHO                                                     '+%D0%9F%D1%80%D0%BE%D0%B4%D0%B0%D0%B6%D0%B0+'
        118        ECHO                                                     !8
        119        ECHO                                                     '%3Cbr%3E'
   60   120        ECHO                                                     '%3Cbr%3E'
        121        ECHO                                                     '%D0%93%D1%80%D0%B8%D0%B2%D0%BD%D1%8F+'
        122        ECHO                                                     !5
        123        ECHO                                                     '+%D0%A0%D1%83%D0%B1%D0%BB%D1%8C+'
        124        INIT_FCALL                                               'ceil'
        125        SEND_VAR                                                 !9
        126        DO_ICALL                                         $66     
        127        ECHO                                                     $66
        128        ECHO                                                     '%3Cbr%3E'
   62   129      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
170.01 ms | 949 KiB | 18 Q