m0n0lithic icon

plantilla.php

m0n0lithic | PRO | 11/03/14 10:47:42 PM UTC | 0 ⭐ | 387 👁️ | Never ⏰ | []
PHP |

10.88 KB

|

None

|

0 👍

/

0 👎

<?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