3v4l.org

run code in 300+ PHP versions simultaneously
<?php // gráfico normal e invertido com vários gráficos function test_mysql_connection() { $servername = "sql10.freemysqlhosting.net"; $username = "sql10716406"; $password = "14hhtpmHk7"; $dbname = "sql10716406"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); function timestamp_to_formatted_datetime($timestamp_ms, $date_format = 'Y-m-d H:i:s') { $timestamp_s = $timestamp_ms / 1000; return date($date_format, $timestamp_s); } // Check connection if ($conn->connect_error) { return "Connection failed: " . $conn->connect_error; } else { // SQL query to retrieve data $sql = "SELECT * FROM cripto"; $result = $conn->query($sql); if ($result->num_rows > 0) { // Prepare an array to hold data for JavaScript $data_for_js = []; while ($row = $result->fetch_assoc()) { $klinebar = json_decode($row['klinebar'], true); $temp = []; // Process the klines data foreach ($klinebar as $kline) { $timestamp_ms = $kline[0]; $open_price = floatval($kline[1]); $high_price = floatval($kline[2]); $low_price = floatval($kline[3]); $close_price = floatval($kline[4]); // Convert timestamp $dt_object = timestamp_to_formatted_datetime($timestamp_ms); $temp[] = [ 'timestamp' => $dt_object, 'open' => $open_price, 'high' => $high_price, 'low' => $low_price, 'close' => $close_price, ]; } $data_for_js[] = $temp; } // Close connection $conn->close(); // Now, output the JavaScript for Plotly ob_start(); // Start buffering output ?> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> <script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script> <table> <?php foreach ($data_for_js as $index => $data) { echo "<tr> <td><div id='chartDiv_$index'></div></td> <td><div id='invertedChartDiv_$index'></div></td> <td><div id='renkoChartDiv_$index'></div></td> </tr>"; ?> <script> document.addEventListener('DOMContentLoaded', function() { var data = <?php echo json_encode($data); ?>; var trace = { x: data.map(function(entry) { return entry.timestamp; }), open: data.map(function(entry) { return entry.open; }), high: data.map(function(entry) { return entry.high; }), low: data.map(function(entry) { return entry.low; }), close: data.map(function(entry) { return entry.close; }), // Customize colors increasing: {line: {color: 'black'}}, decreasing: {line: {color: 'red'}}, type: 'candlestick', }; var layout = { dragmode: 'zoom', showlegend: false, xaxis: { rangeslider: { visible: false } }, yaxis: { autorange: true, zeroline: false } }; Plotly.newPlot('chartDiv_<?php echo $index; ?>', [trace], layout); // Create the inverted chart data var invertedData = data.map(function(entry) { return { timestamp: entry.timestamp, open: entry.close, // swap open and close high: entry.low, // swap high and low low: entry.high, // swap high and low close: entry.open // swap open and close }; }); var invertedTrace = { x: invertedData.map(function(entry) { return entry.timestamp; }), open: invertedData.map(function(entry) { return entry.open; }), high: invertedData.map(function(entry) { return entry.high; }), low: invertedData.map(function(entry) { return entry.low; }), close: invertedData.map(function(entry) { return entry.close; }), // Customize colors increasing: {line: {color: 'black'}}, decreasing: {line: {color: 'red'}}, type: 'candlestick', }; Plotly.newPlot('invertedChartDiv_<?php echo $index; ?>', [invertedTrace], layout); //renko abaixo // Create the Renko chart var renkoData = [{ dataPoints: data.map(function(entry) { return {x: new Date(entry.timestamp), y: [entry.open, entry.high, entry.low, entry.close]}; }) }]; var renkoChart = new CanvasJS.Chart("renkoChartDiv_<?php echo $index; ?>", { title: { text: "Renko Chart", fontFamily: "times new roman" }, zoomEnabled: true, exportEnabled: true, axisY: { includeZero: false, title: "Prices", prefix: "$ " }, axisX: { tickLength: 0, labelFormatter: function(e) { return ""; } } }); renkoChart.options.data = renderRenko(50, renkoData); renkoChart.render(); function renderRenko(brickSize, data) { var newDataPoints = []; var oldValue = data[0].dataPoints[0].y[3]; var difference = 0; var newValue, dataPoint, xValue; for (var i = 1; i < data[0].dataPoints.length; i++) { dataPoint = data[0].dataPoints[i].y[3]; xValue = CanvasJS.formatDate(data[0].dataPoints[i].x, "MMM-YYYY"); difference = dataPoint - oldValue; if (difference > 0 && difference > brickSize) { for (var j = 0; j < Math.floor(difference / brickSize); j++) { newValue = oldValue + brickSize; newDataPoints.push({content: xValue, y: [oldValue, newValue], color: "#86B402"}); oldValue = newValue; } } else if (difference < 0 && Math.abs(difference) > brickSize) { for (var j = 0; j < Math.floor(Math.abs(difference) / brickSize); j++) { newValue = oldValue - brickSize; newDataPoints.push({content: xValue, y: [oldValue, newValue], color: "#C24642"}); oldValue = newValue; } } } var newData = [{ type: "rangeColumn", toolTipContent: "<b>{content}</b> <br> {y[0]} - {y[1]}", dataPoints: newDataPoints }]; return newData; } //renko acima }); </script> <?php } ?> </table> <?php return ob_get_clean(); // Return buffered output } else { $conn->close(); return "Update in progress. Refresh the page in 2 minutes"; } } } ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kQmE7
function name:  (null)
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  223     0  E > > RETURN                                                   1

Function test_mysql_connection:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 18
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 105
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 66
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 70, Position 2 = 28
Branch analysis from position: 70
2 jumps found. (Code = 77) Position 1 = 76, Position 2 = 99
Branch analysis from position: 76
2 jumps found. (Code = 78) Position 1 = 77, Position 2 = 99
Branch analysis from position: 77
1 jumps found. (Code = 42) Position 1 = 76
Branch analysis from position: 76
Branch analysis from position: 99
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 99
Branch analysis from position: 28
2 jumps found. (Code = 77) Position 1 = 36, Position 2 = 63
Branch analysis from position: 36
2 jumps found. (Code = 78) Position 1 = 37, Position 2 = 63
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
Branch analysis from position: 63
2 jumps found. (Code = 44) Position 1 = 70, Position 2 = 28
Branch analysis from position: 70
Branch analysis from position: 28
Branch analysis from position: 63
Branch analysis from position: 105
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kQmE7
function name:  test_mysql_connection
number of ops:  109
compiled vars:  !0 = $servername, !1 = $username, !2 = $password, !3 = $dbname, !4 = $conn, !5 = $sql, !6 = $result, !7 = $data_for_js, !8 = $klinebar, !9 = $row, !10 = $temp, !11 = $kline, !12 = $timestamp_ms, !13 = $open_price, !14 = $high_price, !15 = $low_price, !16 = $close_price, !17 = $dt_object, !18 = $data, !19 = $index
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   ASSIGN                                                   !0, 'sql10.freemysqlhosting.net'
    7     1        ASSIGN                                                   !1, 'sql10716406'
    8     2        ASSIGN                                                   !2, '14hhtpmHk7'
    9     3        ASSIGN                                                   !3, 'sql10716406'
   12     4        NEW                                              $24     'mysqli'
          5        SEND_VAR_EX                                              !0
          6        SEND_VAR_EX                                              !1
          7        SEND_VAR_EX                                              !2
          8        SEND_VAR_EX                                              !3
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !4, $24
   14    11        DECLARE_FUNCTION                                         'timestamp_to_formatted_datetime'
   20    12        FETCH_OBJ_R                                      ~27     !4, 'connect_error'
         13      > JMPZ                                                     ~27, ->18
   21    14    >   FETCH_OBJ_R                                      ~28     !4, 'connect_error'
         15        CONCAT                                           ~29     'Connection+failed%3A+', ~28
         16      > RETURN                                                   ~29
   20    17*       JMP                                                      ->108
   24    18    >   ASSIGN                                                   !5, 'SELECT+%2A+FROM+cripto'
   26    19        INIT_METHOD_CALL                                         !4, 'query'
         20        SEND_VAR_EX                                              !5
         21        DO_FCALL                                      0  $31     
         22        ASSIGN                                                   !6, $31
   28    23        FETCH_OBJ_R                                      ~33     !6, 'num_rows'
         24        IS_SMALLER                                               0, ~33
         25      > JMPZ                                                     ~34, ->105
   30    26    >   ASSIGN                                                   !7, <array>
   32    27      > JMP                                                      ->66
   33    28    >   INIT_FCALL                                               'json_decode'
         29        FETCH_DIM_R                                      ~36     !9, 'klinebar'
         30        SEND_VAL                                                 ~36
         31        SEND_VAL                                                 <true>
         32        DO_ICALL                                         $37     
         33        ASSIGN                                                   !8, $37
   35    34        ASSIGN                                                   !10, <array>
   38    35      > FE_RESET_R                                       $40     !8, ->63
         36    > > FE_FETCH_R                                               $40, !11, ->63
   39    37    >   FETCH_DIM_R                                      ~41     !11, 0
         38        ASSIGN                                                   !12, ~41
   40    39        FETCH_DIM_R                                      ~43     !11, 1
         40        CAST                                          5  ~44     ~43
         41        ASSIGN                                                   !13, ~44
   41    42        FETCH_DIM_R                                      ~46     !11, 2
         43        CAST                                          5  ~47     ~46
         44        ASSIGN                                                   !14, ~47
   42    45        FETCH_DIM_R                                      ~49     !11, 3
         46        CAST                                          5  ~50     ~49
         47        ASSIGN                                                   !15, ~50
   43    48        FETCH_DIM_R                                      ~52     !11, 4
         49        CAST                                          5  ~53     ~52
         50        ASSIGN                                                   !16, ~53
   46    51        INIT_FCALL_BY_NAME                                       'timestamp_to_formatted_datetime'
         52        SEND_VAR_EX                                              !12
         53        DO_FCALL                                      0  $55     
         54        ASSIGN                                                   !17, $55
   48    55        INIT_ARRAY                                       ~58     !17, 'timestamp'
   49    56        ADD_ARRAY_ELEMENT                                ~58     !13, 'open'
   50    57        ADD_ARRAY_ELEMENT                                ~58     !14, 'high'
   51    58        ADD_ARRAY_ELEMENT                                ~58     !15, 'low'
   52    59        ADD_ARRAY_ELEMENT                                ~58     !16, 'close'
   47    60        ASSIGN_DIM                                               !10
   52    61        OP_DATA                                                  ~58
   38    62      > JMP                                                      ->36
         63    >   FE_FREE                                                  $40
   56    64        ASSIGN_DIM                                               !7
         65        OP_DATA                                                  !10
   32    66    >   INIT_METHOD_CALL                                         !6, 'fetch_assoc'
         67        DO_FCALL                                      0  $60     
         68        ASSIGN                                           ~61     !9, $60
         69      > JMPNZ                                                    ~61, ->28
   60    70    >   INIT_METHOD_CALL                                         !4, 'close'
         71        DO_FCALL                                      0          
   63    72        INIT_FCALL                                               'ob_start'
         73        DO_ICALL                                                 
   65    74        ECHO                                                     '++++++++++++%3Cscript+src%3D%22https%3A%2F%2Fcdn.plot.ly%2Fplotly-latest.min.js%22%3E%3C%2Fscript%3E%0A++++++++++++%3Cscript+src%3D%22https%3A%2F%2Fcanvasjs.com%2Fassets%2Fscript%2Fcanvasjs.min.js%22%3E%3C%2Fscript%3E%0A%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%0A++++++++++++%3Ctable%3E%0A'
   70    75      > FE_RESET_R                                       $64     !7, ->99
         76    > > FE_FETCH_R                                       ~65     $64, !18, ->99
         77    >   ASSIGN                                                   !19, ~65
   73    78        ROPE_INIT                                     7  ~68     '%3Ctr%3E%0A++++++++++++++++++++++++%3Ctd%3E%3Cdiv+id%3D%27chartDiv_'
   74    79        ROPE_ADD                                      1  ~68     ~68, !19
         80        ROPE_ADD                                      2  ~68     ~68, '%27%3E%3C%2Fdiv%3E%3C%2Ftd%3E%0A++++++++++++++++++++++++%3Ctd%3E%3Cdiv+id%3D%27invertedChartDiv_'
   75    81        ROPE_ADD                                      3  ~68     ~68, !19
         82        ROPE_ADD                                      4  ~68     ~68, '%27%3E%3C%2Fdiv%3E%3C%2Ftd%3E%0A++++++++++++++++++++++++%3Ctd%3E%3Cdiv+id%3D%27renkoChartDiv_'
   76    83        ROPE_ADD                                      5  ~68     ~68, !19
         84        ROPE_END                                      6  ~67     ~68, '%27%3E%3C%2Fdiv%3E%3C%2Ftd%3E%0A++++++++++++++++++++++%3C%2Ftr%3E'
         85        ECHO                                                     ~67
   80    86        ECHO                                                     '++++++++++++%3Cscript%3E%0A++++++++++++++++document.addEventListener%28%27DOMContentLoaded%27%2C+function%28%29+%7B%0A++++++++++++++++++++var+data+%3D+'
   82    87        INIT_FCALL                                               'json_encode'
         88        SEND_VAR                                                 !18
         89        DO_ICALL                                         $72     
         90        ECHO                                                     $72
         91        ECHO                                                     '%3B%0A%0A++++++++++++++++++++var+trace+%3D+%7B%0A++++++++++++++++++++++++x%3A+data.map%28function%28entry%29+%7B+return+entry.timestamp%3B+%7D%29%2C%0A++++++++++++++++++++++++open%3A+data.map%28function%28entry%29+%7B+return+entry.open%3B+%7D%29%2C%0A++++++++++++++++++++++++high%3A+data.map%28function%28entry%29+%7B+return+entry.high%3B+%7D%29%2C%0A++++++++++++++++++++++++low%3A+data.map%28function%28entry%29+%7B+return+entry.low%3B+%7D%29%2C%0A++++++++++++++++++++++++close%3A+data.map%28function%28entry%29+%7B+return+entry.close%3B+%7D%29%2C%0A%0A++++++++++++++++++++++++%2F%2F+Customize+colors%0A++++++++++++++++++++++++increasing%3A+%7Bline%3A+%7Bcolor%3A+%27black%27%7D%7D%2C%0A++++++++++++++++++++++++decreasing%3A+%7Bline%3A+%7Bcolor%3A+%27red%27%7D%7D%2C%0A%0A++++++++++++++++++++++++type%3A+%27candlestick%27%2C%0A++++++++++++++++++++%7D%3B%0A%0A++++++++++++++++++++var+layout+%3D+%7B%0A++++++++++++++++++++++++dragmode%3A+%27zoom%27%2C%0A++++++++++++++++++++++++showlegend%3A+false%2C%0A++++++++++++++++++++++++xaxis%3A+%7B%0A++++++++++++++++++++++++++++rangeslider%3A+%7B%0A++++++++++++++++++++++++++++++++visible%3A+false%0A++++++++++++++++++++++++++++%7D%0A++++++++++++++++++++++++%7D%2C%0A++++++++++++++++++++++++yaxis%3A+%7B%0A++++++++++++++++++++++++++++autorange%3A+true%2C%0A++++++++++++++++++++++++++++zeroline%3A+false%0A++++++++++++++++++++++++%7D%0A++++++++++++++++++++%7D%3B%0A%0A++++++++++++++++++++Plotly.newPlot%28%27chartDiv_'
  112    92        ECHO                                                     !19
         93        ECHO                                                     '%27%2C+%5Btrace%5D%2C+layout%29%3B%0A%0A++++++++++++++++++++%2F%2F+Create+the+inverted+chart+data%0A++++++++++++++++++++var+invertedData+%3D+data.map%28function%28entry%29+%7B%0A++++++++++++++++++++++++return+%7B%0A++++++++++++++++++++++++++++timestamp%3A+entry.timestamp%2C%0A++++++++++++++++++++++++++++open%3A+entry.close%2C+++%2F%2F+swap+open+and+close%0A++++++++++++++++++++++++++++high%3A+entry.low%2C+++++%2F%2F+swap+high+and+low%0A++++++++++++++++++++++++++++low%3A+entry.high%2C+++++%2F%2F+swap+high+and+low%0A++++++++++++++++++++++++++++close%3A+entry.open++++%2F%2F+swap+open+and+close%0A++++++++++++++++++++++++%7D%3B%0A++++++++++++++++++++%7D%29%3B%0A%0A++++++++++++++++++++var+invertedTrace+%3D+%7B%0A++++++++++++++++++++++++x%3A+invertedData.map%28function%28entry%29+%7B+return+entry.timestamp%3B+%7D%29%2C%0A++++++++++++++++++++++++open%3A+invertedData.map%28function%28entry%29+%7B+return+entry.open%3B+%7D%29%2C%0A++++++++++++++++++++++++high%3A+invertedData.map%28function%28entry%29+%7B+return+entry.high%3B+%7D%29%2C%0A++++++++++++++++++++++++low%3A+invertedData.map%28function%28entry%29+%7B+return+entry.low%3B+%7D%29%2C%0A++++++++++++++++++++++++close%3A+invertedData.map%28function%28entry%29+%7B+return+entry.close%3B+%7D%29%2C%0A%0A++++++++++++++++++++++++%2F%2F+Customize+colors%0A++++++++++++++++++++++++increasing%3A+%7Bline%3A+%7Bcolor%3A+%27black%27%7D%7D%2C%0A++++++++++++++++++++++++decreasing%3A+%7Bline%3A+%7Bcolor%3A+%27red%27%7D%7D%2C%0A%0A++++++++++++++++++++++++type%3A+%27candlestick%27%2C%0A++++++++++++++++++++%7D%3B%0A%0A++++++++++++++++++++Plotly.newPlot%28%27invertedChartDiv_'
  139    94        ECHO                                                     !19
         95        ECHO                                                     '%27%2C+%5BinvertedTrace%5D%2C+layout%29%3B%0A%09%09%09+++%2F%2Frenko+abaixo%0A%09%09%09++%0A%2F%2F+Create+the+Renko+chart%0A++++++++++++++++++++var+renkoData+%3D+%5B%7B%0A++++++++++++++++++++++++dataPoints%3A+data.map%28function%28entry%29+%7B%0A++++++++++++++++++++++++++++return+%7Bx%3A+new+Date%28entry.timestamp%29%2C+y%3A+%5Bentry.open%2C+entry.high%2C+entry.low%2C+entry.close%5D%7D%3B%0A++++++++++++++++++++++++%7D%29%0A++++++++++++++++++++%7D%5D%3B%0A%09%09%09%09%09+%0A%09%09%09%09%09var+renkoChart+%3D+new+CanvasJS.Chart%28%22renkoChartDiv_'
  149    96        ECHO                                                     !19
         97        ECHO                                                     '%22%2C+%7B%0A++++++++++++++++++++++++title%3A+%7B%0A++++++++++++++++++++++++++++text%3A+%22Renko+Chart%22%2C%0A++++++++++++++++++++++++++++fontFamily%3A+%22times+new+roman%22%0A++++++++++++++++++++++++%7D%2C%0A++++++++++++++++++++++++zoomEnabled%3A+true%2C%0A++++++++++++++++++++++++exportEnabled%3A+true%2C%0A++++++++++++++++++++++++axisY%3A+%7B%0A++++++++++++++++++++++++++++includeZero%3A+false%2C%0A++++++++++++++++++++++++++++title%3A+%22Prices%22%2C%0A++++++++++++++++++++++++++++prefix%3A+%22%24+%22%0A++++++++++++++++++++++++%7D%2C%0A++++++++++++++++++++++++axisX%3A+%7B%0A++++++++++++++++++++++++++++tickLength%3A+0%2C%0A++++++++++++++++++++++++++++labelFormatter%3A+function%28e%29+%7B%0A++++++++++++++++++++++++++++++++return+%22%22%3B%0A++++++++++++++++++++++++++++%7D%0A++++++++++++++++++++++++%7D%0A++++++++++++++++++++%7D%29%3B%0A%0A++++++++++++++++++++renkoChart.options.data+%3D+renderRenko%2850%2C+renkoData%29%3B%0A++++++++++++++++++++renkoChart.render%28%29%3B%0A%09%09%09%09%09%0A%09%09%09%09%09%0A%09%09%09%09%09function+renderRenko%28brickSize%2C+data%29+%7B%0A++++++++++++++++++++++++var+newDataPoints+%3D+%5B%5D%3B%0A++++++++++++++++++++++++var+oldValue+%3D+data%5B0%5D.dataPoints%5B0%5D.y%5B3%5D%3B%0A++++++++++++++++++++++++var+difference+%3D+0%3B%0A++++++++++++++++++++++++var+newValue%2C+dataPoint%2C+xValue%3B%0A%0A++++++++++++++++++++++++for+%28var+i+%3D+1%3B+i+%3C+data%5B0%5D.dataPoints.length%3B+i%2B%2B%29+%7B%0A++++++++++++++++++++++++++++dataPoint+%3D+data%5B0%5D.dataPoints%5Bi%5D.y%5B3%5D%3B%0A++++++++++++++++++++++++++++xValue+%3D+CanvasJS.formatDate%28data%5B0%5D.dataPoints%5Bi%5D.x%2C+%22MMM-YYYY%22%29%3B%0A++++++++++++++++++++++++++++difference+%3D+dataPoint+-+oldValue%3B%0A%0A++++++++++++++++++++++++++++if+%28difference+%3E+0+%26%26+difference+%3E+brickSize%29+%7B%0A++++++++++++++++++++++++++++++++for+%28var+j+%3D+0%3B+j+%3C+Math.floor%28difference+%2F+brickSize%29%3B+j%2B%2B%29+%7B%0A++++++++++++++++++++++++++++++++++++newValue+%3D+oldValue+%2B+brickSize%3B%0A++++++++++++++++++++++++++++++++++++newDataPoints.push%28%7Bcontent%3A+xValue%2C+y%3A+%5BoldValue%2C+newValue%5D%2C+color%3A+%22%2386B402%22%7D%29%3B%0A++++++++++++++++++++++++++++++++++++oldValue+%3D+newValue%3B%0A++++++++++++++++++++++++++++++++%7D%0A++++++++++++++++++++++++++++%7D+else+if+%28difference+%3C+0+%26%26+Math.abs%28difference%29+%3E+brickSize%29+%7B%0A++++++++++++++++++++++++++++++++for+%28var+j+%3D+0%3B+j+%3C+Math.floor%28Math.abs%28difference%29+%2F+brickSize%29%3B+j%2B%2B%29+%7B%0A++++++++++++++++++++++++++++++++++++newValue+%3D+oldValue+-+brickSize%3B%0A++++++++++++++++++++++++++++++++++++newDataPoints.push%28%7Bcontent%3A+xValue%2C+y%3A+%5BoldValue%2C+newValue%5D%2C+color%3A+%22%23C24642%22%7D%29%3B%0A++++++++++++++++++++++++++++++++++++oldValue+%3D+newValue%3B%0A++++++++++++++++++++++++++++++++%7D%0A++++++++++++++++++++++++++++%7D%0A++++++++++++++++++++++++%7D%09%0A%09%09%09%09%09%09%0A++++++++++++++++++++++++var+newData+%3D+%5B%7B%0A++++++++++++++++++++++++++++type%3A+%22rangeColumn%22%2C%0A++++++++++++++++++++++++++++toolTipContent%3A+%22%3Cb%3E%7Bcontent%7D%3C%2Fb%3E+%3Cbr%3E+%7By%5B0%5D%7D+-+%7By%5B1%5D%7D%22%2C%0A++++++++++++++++++++++++++++dataPoints%3A+newDataPoints%0A++++++++++++++++++++++++%7D%5D%3B%0A++++++++++++++++++++++++return+newData%3B%0A++++++++++++++++++++%7D%09%09%09%09%09%09%0A%09%09%09%09%09%0A%09%09%09+++%2F%2Frenko+acima%0A%09%09%09%09%09+%0A++++++++++++++++%7D%29%3B%0A++++++++++++%3C%2Fscript%3E%0A'
   70    98      > JMP                                                      ->76
         99    >   FE_FREE                                                  $64
  214   100        ECHO                                                     '++++++++++++%3C%2Ftable%3E%0A'
  216   101        INIT_FCALL                                               'ob_get_clean'
        102        DO_ICALL                                         $73     
        103      > RETURN                                                   $73
   28   104*       JMP                                                      ->108
  218   105    >   INIT_METHOD_CALL                                         !4, 'close'
        106        DO_FCALL                                      0          
  219   107      > RETURN                                                   'Update+in+progress.+Refresh+the+page+in+2+minutes'
  222   108*     > RETURN                                                   null


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kQmE7
function name:  timestamp_to_formatted_datetime
number of ops:  10
compiled vars:  !0 = $timestamp_ms, !1 = $date_format, !2 = $timestamp_s
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   14     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      'Y-m-d+H%3Ai%3As'
   15     2        DIV                                              ~3      !0, 1000
          3        ASSIGN                                                   !2, ~3
   16     4        INIT_FCALL                                               'date'
          5        SEND_VAR                                                 !1
          6        SEND_VAR                                                 !2
          7        DO_ICALL                                         $5      
          8      > RETURN                                                   $5
   17     9*     > RETURN                                                   null

End of Dynamic Function 0

End of function test_mysql_connection

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
161.93 ms | 1023 KiB | 18 Q