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>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.5.00.0150.01021.87
8.4.150.0010.00114.05
8.4.140.0130.00917.71
8.4.130.0100.00717.96
8.4.120.0110.00920.61
8.4.110.0050.00419.08
8.4.100.0140.00817.95
8.4.90.0130.01018.00
8.4.80.0140.00519.57
8.4.70.0370.01117.46
8.4.60.0330.01517.82
8.4.50.0230.00817.94
8.4.40.0180.00617.59
8.4.30.0390.00917.39
8.4.20.0350.01117.71
8.4.10.0390.00917.46
8.3.280.0120.00918.79
8.3.270.0170.00816.87
8.3.260.0130.00716.85
8.3.250.0140.00519.05
8.3.240.0110.00616.95
8.3.230.0030.00516.79
8.3.220.0110.00816.79
8.3.210.0380.00816.65
8.3.200.0380.00916.46
8.3.190.0450.00616.46
8.3.180.0310.01116.75
8.3.170.0360.00716.48
8.3.160.0390.01116.64
8.3.150.0430.00516.59
8.3.140.0280.00716.67
8.3.130.0140.00516.68
8.3.120.0270.00916.89
8.3.110.0260.00916.59
8.3.100.0410.00916.47
8.3.90.0350.01216.44
8.3.80.0330.01316.63
8.3.70.0350.01016.74
8.3.60.0420.00716.46
8.3.50.0370.00916.68
8.3.40.0330.01017.47
8.3.30.0220.00817.53
8.3.20.0300.00817.47
8.3.10.0260.01117.61
8.3.00.0220.00517.60
8.2.290.0090.01019.02
8.2.280.0310.00616.95
8.2.270.0350.00816.47
8.2.260.0280.01116.55
8.2.250.0300.00916.50
8.2.240.0290.01116.63
8.2.230.0330.00616.56
8.2.220.0290.01216.46
8.2.210.0330.01016.65
8.2.200.0300.00916.49
8.2.190.0340.00916.48
8.2.180.0330.00916.39
8.2.170.0410.00617.52
8.2.160.0330.00617.42
8.2.150.0380.00517.52
8.2.140.0340.00817.17
8.2.130.0310.00817.48
8.2.120.0190.00617.61
8.2.110.0340.00817.40
8.2.100.0320.00917.47
8.2.90.0350.00817.45
8.2.80.0300.01017.36
8.2.70.0290.00717.46
8.2.60.0320.00917.37
8.2.50.0320.00817.56
8.2.40.0310.00717.40
8.2.30.0350.01017.48
8.2.20.0220.01017.42
8.2.10.0300.01017.45
8.2.00.0340.00917.37

preferences:
47.05 ms | 403 KiB | 5 Q