<?php
/* procesar la plantilla con los datos mas recientes para cada area
Desarrollado por Ing. Wilderman Ceren para app de PRONARC/COMET (20141021)
*/
ini_set('display_errors', 1);
error_reporting(E_ALL);
#$ruta = '/home/wilderman/api';
#set_include_path(get_include_path() . PATH_SEPARATOR . $ruta);
include '/home/wilderman/api/DB.php';
$colors = array ( 'fav'=>'tg-ukxy',
'modfav'=>'tg-c4s6',
'desfav'=>'tg-yg2k');
$oper_aer01 = array('A','B','C','D','E');
// A = Ametrallamiento, B=Bombardeo, C=Cohetes, D=Transporte, E=Recon.armas
function getcolorT($oper_, $visib_, $cobert_, $precip_, $niv_rios_, $colors_, $oper_aer01_)
{
$color_='';
if ( $oper_ == 'R' ) { // Fluvial
if ( $niv_rios_ > 20 || ($niv_rios_ <= 20 && $niv_rios_ >= 10) ) $color_ = $colors_['fav']; // Verde (Favorable)
elseif ($niv_rios_ < 10) $color_ = $colors_['modfav']; // Amarillo (Moderadamente Favorable)
elseif ($niv_rios_ > 30) $color_ = $colors_['modfav']; // Amarillo
elseif (($niv_rios_ <= 30 && $niv_rios_ >= 10) || $niv_rios_ < 10) $color_ = $colors_['desfav'];
else $color_ = $colors_['desfav'];
} elseif (in_array($oper_, $oper_aer01_)) {
if ( ($visib_ > 5 || ($visib_ >= 2 && $visib_ <= 5)) && ($cobert_ >= 0 && $cobert_ <= 40) && ($precip_ < 1 || ($precip_ >=1 && $precip_<=5)) ) $color_ = $colors_['fav'];
elseif ( ($visib_ < 2 || $visib_ > 5) && ($cobert_ >= 0 && $cobert_ <= 40) || ($cobert_ > 40 && $cobert_ <= 100) && ($precip_>5 || $precip_<1) ) $color_ = $colors_['modfav'];
elseif ( (($visib_ >= 2 && $visib_ <= 5) || $visib_ < 2) && ($cobert_ >= 40 && $cobert_ <= 100) && (($precip_ >= 1 && $precip_ <= 5) || $precip_ > 5) ) $color_ = $colors_['desfav'];
else $color_ = $colors_['desfav'];
} elseif ($oper_ == 'F') //Flir
{
if ( ($visib_ > 5 || ($visib_>=2 && $visib_<=5) || $visib_<2) && ($cobert_ >= 0 && $cobert_ <= 40) && ($precip_ < 1 || ($precip_>=1 && $precip_<=5) || $precip_>5) ) $color_ = $colors_['fav'];
elseif ( ($visib_ > 5 || ($visib_>=2 && $visib_<=5)) && ($cobert_ >= 40 && $cobert_ <= 100) && ($precip_>=1 && $precip_<=5) ) $color_ = $colors_['modfav'];
elseif ( $visib_<2 && ($cobert_>=40 && $cobert_<=100) && $precip_ > 5) $color_ = $colors_['desfav'];
else $color_ = $colors_['desfav'];
}
elseif ($oper_ == 'I') //Aerofotografia
{
if ( ($visib_>5 || ($visib_>=2 && $visib_<=5)) && ($cobert_>=0 && $cobert_<=40) && ($precip_<1 || ($precip_>=1 && $precip_<=5)) ) $color_=$colors_['fav'];
elseif ( $visib_<2 && ($cobert_>=0 && $cobert_<=40) && $precip_>5 ) $color_=$colors_['modfav'];
elseif ( ( $visib_>2 || ($visib_>=2 && $visib_<=5) || $visib<2) && ($cobert_>=40 && $cobert_<=100) && ($precip_<1 || ($precip_>=1 && $precip_<=5) || $precip_>5) ) $color_=$colors_['desfav'];
else $color_=$colors_['desfav'];
}
//else ($oper_ == 'K') //Radiofotografia
else //Radiofotografia
{
if ( ($visib_>5 || ($visib_>=2 && $visib_<=5) || $visib_<2 || $visib_>5) && (($cobert_>=0 && $cobert_<=40) || ($cobert_>40 && $cobert_<=100)) && ($precip_<1 || ($precip_>=1 && $precip_<=5) || $precip_>5) ) $color_ = $colors_['fav'];
elseif ( ($visib_>=2 && $visib_<=5) && ($cobert_>=40 && $cobert_<=100) && ($precip_>=1 && $precip_<=5) ) $color_ = $colors_['modfav'];
elseif ( $visib_<2 && ($cobert_>=40 && $cobert_<=100) && $precip_>5 ) $color_ = $colors_['desfav'];
}
return $color_ ;
}
function getcolorM($nav_cost_af, $nav_cost, $colors_)
{
$navigs = array();
if ($nav_cost_af < 4) $color_ = $colors_['fav'];
elseif ($nav_cost_af >= 4 && $nav_cost <= 6) $color_ = $colors_['modfav'];
else $color_ = $colors_['desfav'];
$navigs[0] = $color_;
if ($nav_cost < 4) $color_ = $colors_['fav'];
elseif ($nav_cost >= 4 && $nav_cost <= 6) $color_ = $colors_['modfav'];
else $color_ = $colors_['desfav'];
$navigs[1] = $color_;
return $navigs;
}
$mysqli = new mysqli($hostname, $username, $password, $databasename);
if ($mysqli->connect_errno) {
//echo "Failed to connect to MySQL: " . $mysqli->connect_error;
header('HTTP/1.1 404 '.$mysqli->connect_error);
exit();
}
$area = (int)htmlspecialchars(trim($_GET['_area'])); //Obtiene la info de cada unidad
$str_ = "SELECT a.fecha,b.abrev,b.tipo,a.temp_d,a.temp_n,a.hum_d,a.hum_n,a.posll_d,a.posll_n,a.sol_ort,a.lun_ort,a.sol_oca,a.lun_oca,a.sol_mxalt,a.lun_mxalt,a.dirv_d,a.dirv_n,a.velv_d,a.velv_n FROM indicrs a INNER JOIN unidad b ON a.unidad = b.ind WHERE b.ind=? ORDER BY a.fecha DESC LIMIT 1"; //Selecciona el area con la ultima informacion registrada para ultima fecha.
$stmt = $mysqli->prepare($str_);
$stmt->bind_param("i", $area);
$stmt->execute();
$stmt->bind_result($fecha,$abrev,$tipo,$temp_d,$temp_n,$hum_d,$hum_n,$posll_d,$posll_n,$sol_ort,$lun_ort,$sol_oca,$lun_oca,$sol_mxalt,$lun_mxalt,$dirv_d,$dirv_n,$velv_d,$velv_n); //Captura datos proveniente de Indicadores
$stmt->fetch();
$stmt->close();
if (isset($abrev))
{
$kolor = array();
if ($tipo = "T") // área tipo terrestre
{
$str_ = "SELECT `oper`,`visib`,`cobert`,`precip`,`niv_rios` FROM ind_aereas WHERE `fecha` = ? AND `unidad` = ?";
$stmt1 = $mysqli->prepare($str_);
$stmt1->bind_param("si",$fecha,$area);
$stmt1->execute();
$stmt1->bind_result($oper,$visib,$cobert,$precip,$niv_rios); //Captura datos proveniente de indicaciones aereas
while ($stmt1->fetch())
{
$color = getcolorT($oper,$visib,$cobert,$precip,$niv_rios,$colors,$oper_aer01);
$kolor[$oper] = $color;
}
} else {
$str_ = "SELECT `nv_cost_af`,`nv_cost` FROM ind_marit WHERE `fecha` = ? AND `unidad` = ?";
$stmt1 = $mysqli->prepare($str_);
$stmt1->execute();
$stmt1->bind_param("si",$fecha,$area);
$stmt1->bind_result($nv_cost_af,$niv_cost); //Captura datos proveniente de indicaciones maritimas
while ($stmt1->fetch())
{
$color = getcolorM($nv_cost_af, $nv_cost, $colors);
}
}
$stmt1->close();
//var_dump($kolor);
//print_r($kolor);
//echo $fecha;
ob_start();
if ($tipo == 'T') include 'plantilla02.html';
else include 'plantilla03.html';
$string = ob_get_clean();
$patterns = array();
$patterns[0] = '/29/' ; //temperatura dia :: $temp_d
$patterns[1] = '/25/' ; //temperatura noche :: $temp_n
$patterns[2] = '/60/' ; //humedad rel. dia :: $hum_d
$patterns[3] = '/85/' ; //humedad rel. noc :: $hum_n
$patterns[4] = '/10%/' ; //posib lluvia dia :: $posll_d
$patterns[5] = '/70%/' ; //posib lluvia noche :: $posll_n
$patterns[6] = '/05\:52/' ; //orto sol :: $sol_ort
$patterns[7] = '/14\:11/' ; //orto luna :: $lun_ort
$patterns[8] = '/18\:21/' ; //ocaso sol :: $sol_oca
$patterns[9] = '/14\:12/' ; //ocaso luna :: $lun_oca
$patterns[10] = '/12\:06/' ; //max-alt-sol :: $sol_mxalt
$patterns[11] = '/20\:12/' ; //max-alt-luna :: $lun_mxalt
$patterns[12] = '/30/' ; //viento::dir::dia :: $dirv_d
$patterns[13] = '/36/' ; //viento::dir::noche :: $dirv_n
$patterns[14] = '/6 nudos/' ; //viento::vel::dia :: $velv_d
$patterns[15] = '/8 nudos/' ; //viento::vel::noche :: $velv_n
if ($tipo== 'T') {
if (array_key_exists('A',$kolor)) $patterns[16] = '/<td class="tg-xha5"><\/td>/'; //operaerea::ametrallamiento
if (array_key_exists('B',$kolor)) $patterns[17] = '/<td class="tg-23bk"><\/td>/'; //operaerea::bombardeo
if (array_key_exists('C',$kolor)) $patterns[18] = '/<td class="tg-xha4"><\/td>/'; //operaerea::cohetes
if (array_key_exists('D',$kolor)) $patterns[19] = '/<td class="tg-tcvo"><\/td>/' ; //operaerea::transporte
if (array_key_exists('E',$kolor)) $patterns[20] = '/<td class="tg-5fb6"><\/td>/'; //operaerea::recon_armas
if (array_key_exists('F',$kolor)) $patterns[21] = '/<td class="tg-38pe"><\/td>/'; //operaerea::flir
if (array_key_exists('I',$kolor)) $patterns[22] = '/<td class="tg-23bm"><\/td>/'; //operaerea::aerofotografia
if (array_key_exists('K',$kolor)) $patterns[23] = '/<td class="tg-23bl"><\/td>/'; //operaerea::radiofotografia
if (array_key_exists('R',$kolor)) $patterns[24] = '/<td class="tg-38pd"><\/td>/'; //operaerea::fluviales
$patterns[25] = '/PRONOSTICO OPERACIONAL (\w+ \d)/' ; //titulo
$patterns[26] = '/"/';
$patterns[27] = '/\n/';
} else {
if (isset($color[1])) $patterns[16] = '/<td class="tg-tcvo" rowspan="3"><\/td>/'; //Navegacion costera
if (isset($color[0])) $patterns[17] = '/<td class="tg-23bk" rowspan="3"><\/td>/'; //Navegacion costa afuera
$patterns[18] = '/PRONOSTICO AREA MARITIMA (\w+)/' ; //titulo
$patterns[19] = '/\"/';
$patterns[20] = '/\n/';
}
//$patterns[] = '/\"/';
//$patterns[] = '/\n/';
$replacement = array();
$replacement[0] = $temp_d;
$replacement[1] = $temp_n;
$replacement[2] = $hum_d;
$replacement[3] = $hum_n;
$replacement[4] = $posll_d.'%';
$replacement[5] = $posll_n.'%';
$replacement[6] = substr($sol_ort,0,-3);
$replacement[7] = substr($lun_ort,0,-3);
$replacement[8] = substr($sol_oca,0,-3);
$replacement[9] = substr($lun_oca,0,-3);
$replacement[10] = substr($sol_mxalt,0,-3);
$replacement[11] = substr($lun_mxalt,0,-3);;
$replacement[12] = $dirv_d;
$replacement[13] = $dirv_n;
$replacement[14] = $velv_d.' nudos';
$replacement[15] = $velv_n.' nudos';
if ($tipo== 'T') {
if (array_key_exists('A',$kolor)) $replacement[16] = '<td class="'.$kolor["A"].'"></td>'; //operaerea::ametrallamiento
if (array_key_exists('B',$kolor)) $replacement[17] = '<td class="'.$kolor["B"].'"></td>'; //operaerea::bombardeo
if (array_key_exists('C',$kolor)) $replacement[18] = '<td class="'.$kolor["C"].'"></td>'; //operaerea::cohetes
if (array_key_exists('D',$kolor)) $replacement[19] = '<td class="'.$kolor["D"].'"></td>'; //operaerea::transporte
if (array_key_exists('E',$kolor)) $replacement[20] = '<td class="'.$kolor["E"].'"></td>'; //operaerea::recon-armas
if (array_key_exists('F',$kolor)) $replacement[21] = '<td class="'.$kolor["F"].'"></td>'; //operaerea::flir
if (array_key_exists('I',$kolor)) $replacement[22] = '<td class="'.$kolor["I"].'"></td>'; //operaerea::aerofotografia
if (array_key_exists('K',$kolor)) $replacement[23] = '<td class="'.$kolor["K"].'"></td>'; //operaerea::radiofotografia
if (array_key_exists('R',$kolor)) $replacement[24] = '<td class="'.$kolor["R"].'"></td>'; //operaerea::radiofotografia
$replacement[25] = 'PRONOSTICO OPERACIONAL '.substr($abrev,0,-1).' '.substr($abrev,-1);
$replacement[26] = '"';
$replacement[27] = '';
} else {
$replacement[16] = '<td class="'.$color[1].'" rowspan="3"><\/td>';
$replacement[17] = '<td class="'.$color[0].'" rowspan="3"><\/td>';
$replacement[18] = 'PRONOSTICO AREA MARITIMA '.$abrev;
$replacement[19] = '"';
$replacement[20] = '';
}
echo preg_replace($patterns, $replacement, $string);
}
?>
Comments