3v4l.org

run code in 300+ PHP versions simultaneously
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Calculadora de Propagação HF (Baseado em Dados de Ionosonda)</title> <style> body { font-family: sans-serif; line-height: 1.6; margin: 20px; background-color: #f4f4f4; } .container { max-width: 600px; margin: auto; background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } h2, h3 { color: #333; border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 20px; } label { display: block; margin-bottom: 8px; font-weight: bold; } input[type="number"] { width: calc(100% - 22px); padding: 10px; margin-bottom: 20px; border: 1px solid #ccc; border-radius: 4px; } button { background-color: #5cb85c; color: white; padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; } button:hover { background-color: #4cae4c; } .result { margin-top: 20px; padding: 15px; background-color: #dff0d8; border: 1px solid #d0e9c6; color: #3c763d; border-radius: 4px; } .error { margin-top: 20px; padding: 15px; background-color: #f2dede; border: 1px solid #ebccd1; color: #a94442; border-radius: 4px; } .info { margin-top: 20px; font-size: 0.9em; color: #555; } </style> </head> <body> <div class="container"> <h2>Calculadora Simplificada de Propagação HF</h2> <div class="info"> <p>Esta calculadora utiliza valores de foF2 e M(3000)F2 (tipicamente obtidos de dados de ionosonda como os do INPE) para estimar a Frequência Máxima Utilizável (MUF) para um caminho de 3000 km.</p> <p><strong>Fonte de dados (referência):</strong> <a href="https://embracedata.inpe.br/ionosonde/" target="_blank">https://embracedata.inpe.br/ionosonde/</a> (Note: Este script NÃO puxa dados automaticamente desta URL, que é um portal de visualização. Você deve inserir os dados manualmente baseados nas informações que obtiver de lá ou de outras fontes de ionosonda).</p> </div> <form action="" method="post"> <label for="foF2">foF2 (MHz):</label> <input type="number" step="0.1" id="foF2" name="foF2" required value="<?php echo isset($_POST['foF2']) ? htmlspecialchars($_POST['foF2']) : ''; ?>"><br><br> <label for="m3000f2">M(3000)F2:</label> <input type="number" step="0.01" id="m3000f2" name="m3000f2" required value="<?php echo isset($_POST['m3000f2']) ? htmlspecialchars($_POST['m3000f2']) : ''; ?>"><br><br> <button type="submit">Calcular MUF(3000)</button> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $foF2 = filter_input(INPUT_POST, 'foF2', FILTER_VALIDATE_FLOAT); $m3000f2 = filter_input(INPUT_POST, 'm3000f2', FILTER_VALIDATE_FLOAT); if ($foF2 !== false && $foF2 > 0 && $m3000f2 !== false && $m3000f2 > 0) { $muf3000 = $foF2 * $m3000f2; ?> <div class="result"> <h3>Resultado do Cálculo</h3> <p>Com foF2 = <?php echo htmlspecialchars($foF2); ?> MHz e M(3000)F2 = <?php echo htmlspecialchars($m3000f2); ?>,</p> <p>A MUF estimada para um caminho de 3000 km (MUF(3000)) é: <strong><?php echo number_format($muf3000, 2); ?> MHz</strong></p> <h3>Indicação de Bandas HF Potencialmente Abertas (para ~3000 km):</h3> <p>Esta é uma indicação simplificada. Bandas com frequência menor ou igual à MUF(3000) *podem* estar abertas para comunicações a longa distância (~3000 km).</p> <ul> <?php $hf_bands = [ '160m' => 1.8, // Aproximado, mais para a noite/dist curta '80m' => 3.7, // Aproximado '40m' => 7.1, // Aproximado '30m' => 10.1, // Aproximado '20m' => 14.1, // Aproximado '17m' => 18.1, // Aproximado '15m' => 21.2, // Aproximado '12m' => 24.9, // Aproximado '10m' => 28.5 // Aproximado ]; $open_bands = []; $closed_bands = []; foreach ($hf_bands as $band => $freq) { if ($freq <= $muf3000) { $open_bands[] = "$band (~$freq MHz)"; } else { $closed_bands[] = "$band (~$freq MHz)"; } } if (!empty($open_bands)) { echo "<li>Potencialmente abertas: " . implode(", ", $open_bands) . "</li>"; } else { echo "<li>Com esta MUF(3000), as bandas HF listadas podem estar fechadas para caminhos longos.</li>"; } // Opcional: Mostrar bandas potencialmente fechadas para clareza // if (!empty($closed_bands)) { // echo "<li>Potencialmente fechadas: " . implode(", ", $closed_bands) . "</li>"; // } ?> </ul> <div class="info"> <p>Lembre-se que a MUF varia com a distância e a hora. A LUF (Lowest Usable Frequency), que depende de fatores como absorção e ruído, também é crítica para determinar quais bandas são *realmente* utilizáveis.</p> </div> </div> <?php } else { ?> <div class="error"> <p>Por favor, insira valores numéricos válidos e maiores que zero para foF2 e M(3000)F2.</p> </div> <?php } } ?> </div> </body> </html>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 11
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 24
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 111
Branch analysis from position: 31
2 jumps found. (Code = 46) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
2 jumps found. (Code = 46) Position 1 = 48, Position 2 = 50
Branch analysis from position: 48
2 jumps found. (Code = 46) Position 1 = 51, Position 2 = 53
Branch analysis from position: 51
2 jumps found. (Code = 43) Position 1 = 54, Position 2 = 110
Branch analysis from position: 54
2 jumps found. (Code = 77) Position 1 = 77, Position 2 = 95
Branch analysis from position: 77
2 jumps found. (Code = 78) Position 1 = 78, Position 2 = 95
Branch analysis from position: 78
2 jumps found. (Code = 43) Position 1 = 81, Position 2 = 88
Branch analysis from position: 81
1 jumps found. (Code = 42) Position 1 = 94
Branch analysis from position: 94
1 jumps found. (Code = 42) Position 1 = 77
Branch analysis from position: 77
Branch analysis from position: 88
1 jumps found. (Code = 42) Position 1 = 77
Branch analysis from position: 77
Branch analysis from position: 95
2 jumps found. (Code = 43) Position 1 = 99, Position 2 = 107
Branch analysis from position: 99
1 jumps found. (Code = 42) Position 1 = 108
Branch analysis from position: 108
1 jumps found. (Code = 42) Position 1 = 111
Branch analysis from position: 111
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 107
1 jumps found. (Code = 42) Position 1 = 111
Branch analysis from position: 111
Branch analysis from position: 95
Branch analysis from position: 110
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
Branch analysis from position: 50
Branch analysis from position: 47
Branch analysis from position: 111
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 111
Branch analysis from position: 31
Branch analysis from position: 111
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 24
Branch analysis from position: 17
Branch analysis from position: 24
filename:       /in/agaFT
function name:  (null)
number of ops:  113
compiled vars:  !0 = $foF2, !1 = $m3000f2, !2 = $muf3000, !3 = $hf_bands, !4 = $open_bands, !5 = $closed_bands, !6 = $freq, !7 = $band
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    1     0  E >   ECHO                                                     '%3C%21DOCTYPE+html%3E%0A%3Chtml+lang%3D%22pt-BR%22%3E%0A%3Chead%3E%0A++++%3Cmeta+charset%3D%22UTF-8%22%3E%0A++++%3Cmeta+name%3D%22viewport%22+content%3D%22width%3Ddevice-width%2C+initial-scale%3D1.0%22%3E%0A++++%3Ctitle%3ECalculadora+de+Propaga%C3%A7%C3%A3o+HF+%28Baseado+em+Dados+de+Ionosonda%29%3C%2Ftitle%3E%0A++++%3Cstyle%3E%0A++++++++body+%7B%0A++++++++++++font-family%3A+sans-serif%3B%0A++++++++++++line-height%3A+1.6%3B%0A++++++++++++margin%3A+20px%3B%0A++++++++++++background-color%3A+%23f4f4f4%3B%0A++++++++%7D%0A++++++++.container+%7B%0A++++++++++++max-width%3A+600px%3B%0A++++++++++++margin%3A+auto%3B%0A++++++++++++background%3A+%23fff%3B%0A++++++++++++padding%3A+20px%3B%0A++++++++++++border-radius%3A+8px%3B%0A++++++++++++box-shadow%3A+0+0+10px+rgba%280%2C+0%2C+0%2C+0.1%29%3B%0A++++++++%7D%0A++++++++h2%2C+h3+%7B%0A++++++++++++color%3A+%23333%3B%0A++++++++++++border-bottom%3A+1px+solid+%23eee%3B%0A++++++++++++padding-bottom%3A+10px%3B%0A++++++++++++margin-bottom%3A+20px%3B%0A++++++++%7D%0A++++++++label+%7B%0A++++++++++++display%3A+block%3B%0A++++++++++++margin-bottom%3A+8px%3B%0A++++++++++++font-weight%3A+bold%3B%0A++++++++%7D%0A++++++++input%5Btype%3D%22number%22%5D+%7B%0A++++++++++++width%3A+calc%28100%25+-+22px%29%3B%0A++++++++++++padding%3A+10px%3B%0A++++++++++++margin-bottom%3A+20px%3B%0A++++++++++++border%3A+1px+solid+%23ccc%3B%0A++++++++++++border-radius%3A+4px%3B%0A++++++++%7D%0A++++++++button+%7B%0A++++++++++++background-color%3A+%235cb85c%3B%0A++++++++++++color%3A+white%3B%0A++++++++++++padding%3A+10px+15px%3B%0A++++++++++++border%3A+none%3B%0A++++++++++++border-radius%3A+4px%3B%0A++++++++++++cursor%3A+pointer%3B%0A++++++++++++font-size%3A+16px%3B%0A++++++++%7D%0A++++++++button%3Ahover+%7B%0A++++++++++++background-color%3A+%234cae4c%3B%0A++++++++%7D%0A++++++++.result+%7B%0A++++++++++++margin-top%3A+20px%3B%0A++++++++++++padding%3A+15px%3B%0A++++++++++++background-color%3A+%23dff0d8%3B%0A++++++++++++border%3A+1px+solid+%23d0e9c6%3B%0A++++++++++++color%3A+%233c763d%3B%0A++++++++++++border-radius%3A+4px%3B%0A++++++++%7D%0A++++++++.error+%7B%0A++++++++++++margin-top%3A+20px%3B%0A++++++++++++padding%3A+15px%3B%0A++++++++++++background-color%3A+%23f2dede%3B%0A++++++++++++border%3A+1px+solid+%23ebccd1%3B%0A++++++++++++color%3A+%23a94442%3B%0A++++++++++++border-radius%3A+4px%3B%0A++++++++%7D%0A++++++++.info+%7B%0A++++++++++++margin-top%3A+20px%3B%0A++++++++++++font-size%3A+0.9em%3B%0A++++++++++++color%3A+%23555%3B%0A++++++++%7D%0A++++%3C%2Fstyle%3E%0A%3C%2Fhead%3E%0A%3Cbody%3E%0A%0A%3Cdiv+class%3D%22container%22%3E%0A++++%3Ch2%3ECalculadora+Simplificada+de+Propaga%C3%A7%C3%A3o+HF%3C%2Fh2%3E%0A++++%3Cdiv+class%3D%22info%22%3E%0A++++++++%3Cp%3EEsta+calculadora+utiliza+valores+de+foF2+e+M%283000%29F2+%28tipicamente+obtidos+de+dados+de+ionosonda+como+os+do+INPE%29+para+estimar+a+Frequ%C3%AAncia+M%C3%A1xima+Utiliz%C3%A1vel+%28MUF%29+para+um+caminho+de+3000+km.%3C%2Fp%3E%0A++++++++%3Cp%3E%3Cstrong%3EFonte+de+dados+%28refer%C3%AAncia%29%3A%3C%2Fstrong%3E+%3Ca+href%3D%22https%3A%2F%2Fembracedata.inpe.br%2Fionosonde%2F%22+target%3D%22_blank%22%3Ehttps%3A%2F%2Fembracedata.inpe.br%2Fionosonde%2F%3C%2Fa%3E+%28Note%3A+Este+script+N%C3%83O+puxa+dados+automaticamente+desta+URL%2C+que+%C3%A9+um+portal+de+visualiza%C3%A7%C3%A3o.+Voc%C3%AA+deve+inserir+os+dados+manualmente+baseados+nas+informa%C3%A7%C3%B5es+que+obtiver+de+l%C3%A1+ou+de+outras+fontes+de+ionosonda%29.%3C%2Fp%3E%0A++++%3C%2Fdiv%3E%0A%0A++++%3Cform+action%3D%22%22+method%3D%22post%22%3E%0A++++++++%3Clabel+for%3D%22foF2%22%3EfoF2+%28MHz%29%3A%3C%2Flabel%3E%0A++++++++%3Cinput+type%3D%22number%22+step%3D%220.1%22+id%3D%22foF2%22+name%3D%22foF2%22+required+value%3D%22'
   86     1        FETCH_IS                                         ~8      '_POST'
          2        ISSET_ISEMPTY_DIM_OBJ                         0          ~8, 'foF2'
          3      > JMPZ                                                     ~9, ->11
          4    >   INIT_FCALL                                               'htmlspecialchars'
          5        FETCH_R                      global              ~10     '_POST'
          6        FETCH_DIM_R                                      ~11     ~10, 'foF2'
          7        SEND_VAL                                                 ~11
          8        DO_ICALL                                         $12     
          9        QM_ASSIGN                                        ~13     $12
         10      > JMP                                                      ->12
         11    >   QM_ASSIGN                                        ~13     ''
         12    >   ECHO                                                     ~13
         13        ECHO                                                     '%22%3E%3Cbr%3E%3Cbr%3E%0A%0A++++++++%3Clabel+for%3D%22m3000f2%22%3EM%283000%29F2%3A%3C%2Flabel%3E%0A++++++++%3Cinput+type%3D%22number%22+step%3D%220.01%22+id%3D%22m3000f2%22+name%3D%22m3000f2%22+required+value%3D%22'
   89    14        FETCH_IS                                         ~14     '_POST'
         15        ISSET_ISEMPTY_DIM_OBJ                         0          ~14, 'm3000f2'
         16      > JMPZ                                                     ~15, ->24
         17    >   INIT_FCALL                                               'htmlspecialchars'
         18        FETCH_R                      global              ~16     '_POST'
         19        FETCH_DIM_R                                      ~17     ~16, 'm3000f2'
         20        SEND_VAL                                                 ~17
         21        DO_ICALL                                         $18     
         22        QM_ASSIGN                                        ~19     $18
         23      > JMP                                                      ->25
         24    >   QM_ASSIGN                                        ~19     ''
         25    >   ECHO                                                     ~19
         26        ECHO                                                     '%22%3E%3Cbr%3E%3Cbr%3E%0A%0A++++++++%3Cbutton+type%3D%22submit%22%3ECalcular+MUF%283000%29%3C%2Fbutton%3E%0A++++%3C%2Fform%3E%0A%0A++++'
   95    27        FETCH_R                      global              ~20     '_SERVER'
         28        FETCH_DIM_R                                      ~21     ~20, 'REQUEST_METHOD'
         29        IS_EQUAL                                                 ~21, 'POST'
         30      > JMPZ                                                     ~22, ->111
   96    31    >   INIT_FCALL                                               'filter_input'
         32        SEND_VAL                                                 0
         33        SEND_VAL                                                 'foF2'
         34        SEND_VAL                                                 259
         35        DO_ICALL                                         $23     
         36        ASSIGN                                                   !0, $23
   97    37        INIT_FCALL                                               'filter_input'
         38        SEND_VAL                                                 0
         39        SEND_VAL                                                 'm3000f2'
         40        SEND_VAL                                                 259
         41        DO_ICALL                                         $25     
         42        ASSIGN                                                   !1, $25
   99    43        TYPE_CHECK                                  1018  ~27     !0
         44      > JMPZ_EX                                          ~27     ~27, ->47
         45    >   IS_SMALLER                                       ~28     0, !0
         46        BOOL                                             ~27     ~28
         47    > > JMPZ_EX                                          ~27     ~27, ->50
         48    >   TYPE_CHECK                                  1018  ~29     !1
         49        BOOL                                             ~27     ~29
         50    > > JMPZ_EX                                          ~27     ~27, ->53
         51    >   IS_SMALLER                                       ~30     0, !1
         52        BOOL                                             ~27     ~30
         53    > > JMPZ                                                     ~27, ->110
  100    54    >   MUL                                              ~31     !0, !1
         55        ASSIGN                                                   !2, ~31
  102    56        ECHO                                                     '++++++++++++%3Cdiv+class%3D%22result%22%3E%0A++++++++++++++++%3Ch3%3EResultado+do+C%C3%A1lculo%3C%2Fh3%3E%0A++++++++++++++++%3Cp%3ECom+foF2+%3D+'
  104    57        INIT_FCALL                                               'htmlspecialchars'
         58        SEND_VAR                                                 !0
         59        DO_ICALL                                         $33     
         60        ECHO                                                     $33
         61        ECHO                                                     '+MHz+e+M%283000%29F2+%3D+'
         62        INIT_FCALL                                               'htmlspecialchars'
         63        SEND_VAR                                                 !1
         64        DO_ICALL                                         $34     
         65        ECHO                                                     $34
         66        ECHO                                                     '%2C%3C%2Fp%3E%0A++++++++++++++++%3Cp%3EA+MUF+estimada+para+um+caminho+de+3000+km+%28MUF%283000%29%29+%C3%A9%3A+%3Cstrong%3E'
  105    67        INIT_FCALL                                               'number_format'
         68        SEND_VAR                                                 !2
         69        SEND_VAL                                                 2
         70        DO_ICALL                                         $35     
         71        ECHO                                                     $35
         72        ECHO                                                     '+MHz%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A++++++++++++++++%3Ch3%3EIndica%C3%A7%C3%A3o+de+Bandas+HF+Potencialmente+Abertas+%28para+%7E3000+km%29%3A%3C%2Fh3%3E%0A++++++++++++++++%3Cp%3EEsta+%C3%A9+uma+indica%C3%A7%C3%A3o+simplificada.+Bandas+com+frequ%C3%AAncia+menor+ou+igual+%C3%A0+MUF%283000%29+%2Apodem%2A+estar+abertas+para+comunica%C3%A7%C3%B5es+a+longa+dist%C3%A2ncia+%28%7E3000+km%29.%3C%2Fp%3E%0A++++++++++++++++%3Cul%3E%0A++++++++++++++++++++'
  111    73        ASSIGN                                                   !3, <array>
  123    74        ASSIGN                                                   !4, <array>
  124    75        ASSIGN                                                   !5, <array>
  126    76      > FE_RESET_R                                       $39     !3, ->95
         77    > > FE_FETCH_R                                       ~40     $39, !6, ->95
         78    >   ASSIGN                                                   !7, ~40
  127    79        IS_SMALLER_OR_EQUAL                                      !6, !2
         80      > JMPZ                                                     ~42, ->88
  128    81    >   ROPE_INIT                                     4  ~45     !7
         82        ROPE_ADD                                      1  ~45     ~45, '+%28%7E'
         83        ROPE_ADD                                      2  ~45     ~45, !6
         84        ROPE_END                                      3  ~44     ~45, '+MHz%29'
         85        ASSIGN_DIM                                               !4
         86        OP_DATA                                                  ~44
  127    87      > JMP                                                      ->94
  130    88    >   ROPE_INIT                                     4  ~49     !7
         89        ROPE_ADD                                      1  ~49     ~49, '+%28%7E'
         90        ROPE_ADD                                      2  ~49     ~49, !6
         91        ROPE_END                                      3  ~48     ~49, '+MHz%29'
         92        ASSIGN_DIM                                               !5
         93        OP_DATA                                                  ~48
  126    94    > > JMP                                                      ->77
         95    >   FE_FREE                                                  $39
  134    96        ISSET_ISEMPTY_CV                                 ~51     !4
         97        BOOL_NOT                                         ~52     ~51
         98      > JMPZ                                                     ~52, ->107
  135    99    >   INIT_FCALL                                               'implode'
        100        SEND_VAL                                                 '%2C+'
        101        SEND_VAR                                                 !4
        102        DO_ICALL                                         $53     
        103        CONCAT                                           ~54     '%3Cli%3EPotencialmente+abertas%3A+', $53
        104        CONCAT                                           ~55     ~54, '%3C%2Fli%3E'
        105        ECHO                                                     ~55
  134   106      > JMP                                                      ->108
  137   107    >   ECHO                                                     '%3Cli%3ECom+esta+MUF%283000%29%2C+as+bandas+HF+listadas+podem+estar+fechadas+para+caminhos+longos.%3C%2Fli%3E'
  145   108    >   ECHO                                                     '++++++++++++++++%3C%2Ful%3E%0A%0A+++++++++++++++++%3Cdiv+class%3D%22info%22%3E%0A++++++++++++++++++++%3Cp%3ELembre-se+que+a+MUF+varia+com+a+dist%C3%A2ncia+e+a+hora.+A+LUF+%28Lowest+Usable+Frequency%29%2C+que+depende+de+fatores+como+absor%C3%A7%C3%A3o+e+ru%C3%ADdo%2C+tamb%C3%A9m+%C3%A9+cr%C3%ADtica+para+determinar+quais+bandas+s%C3%A3o+%2Arealmente%2A+utiliz%C3%A1veis.%3C%2Fp%3E%0A+++++++++++++++++%3C%2Fdiv%3E%0A++++++++++++%3C%2Fdiv%3E%0A++++++++++++'
   99   109      > JMP                                                      ->111
  154   110    >   ECHO                                                     '++++++++++++%3Cdiv+class%3D%22error%22%3E%0A++++++++++++++++%3Cp%3EPor+favor%2C+insira+valores+num%C3%A9ricos+v%C3%A1lidos+e+maiores+que+zero+para+foF2+e+M%283000%29F2.%3C%2Fp%3E%0A++++++++++++%3C%2Fdiv%3E%0A++++++++++++'
  161   111    >   ECHO                                                     '%3C%2Fdiv%3E%0A%0A%3C%2Fbody%3E%0A%3C%2Fhtml%3E'
  164   112      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.8 ms | 1025 KiB | 17 Q