m0n0lithic

plantilla.php

Nov 3rd, 2014
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.88 KB | None | 0 0
  1. <?php
  2. /* procesar la plantilla con los datos mas recientes para cada area
  3.    Desarrollado por Ing. Wilderman Ceren para app de PRONARC/COMET (20141021)
  4. */
  5.  
  6. ini_set('display_errors', 1);
  7. error_reporting(E_ALL);
  8. #$ruta = '/home/wilderman/api';
  9. #set_include_path(get_include_path() . PATH_SEPARATOR . $ruta);
  10.  
  11. include '/home/wilderman/api/DB.php';
  12.  
  13. $colors = array ( 'fav'=>'tg-ukxy',
  14.                   'modfav'=>'tg-c4s6',
  15.                   'desfav'=>'tg-yg2k');
  16.  
  17. $oper_aer01 = array('A','B','C','D','E');
  18. // A = Ametrallamiento, B=Bombardeo, C=Cohetes, D=Transporte, E=Recon.armas
  19.  
  20.  
  21. function getcolorT($oper_, $visib_, $cobert_, $precip_, $niv_rios_, $colors_, $oper_aer01_)
  22. {
  23.   $color_='';
  24.   if ( $oper_ == 'R' )  { // Fluvial
  25.     if ( $niv_rios_ > 20 || ($niv_rios_ <= 20 && $niv_rios_ >= 10) ) $color_ = $colors_['fav'];   // Verde (Favorable)
  26.     elseif ($niv_rios_ < 10) $color_ = $colors_['modfav'];  // Amarillo (Moderadamente Favorable)
  27.     elseif ($niv_rios_ > 30) $color_ = $colors_['modfav'];  // Amarillo
  28.     elseif (($niv_rios_ <= 30 && $niv_rios_ >= 10) || $niv_rios_ < 10) $color_ = $colors_['desfav'];
  29.     else $color_ = $colors_['desfav'];
  30.  
  31.   } elseif (in_array($oper_, $oper_aer01_)) {
  32.     if ( ($visib_ > 5 || ($visib_ >= 2 && $visib_ <= 5)) && ($cobert_ >= 0 && $cobert_ <= 40) && ($precip_ < 1 || ($precip_ >=1 && $precip_<=5)) ) $color_ = $colors_['fav'];
  33.     elseif ( ($visib_ < 2  || $visib_ > 5) && ($cobert_ >= 0  && $cobert_ <= 40) || ($cobert_ > 40 && $cobert_ <= 100) && ($precip_>5 || $precip_<1) ) $color_ = $colors_['modfav'];
  34.     elseif ( (($visib_ >= 2 && $visib_ <= 5) || $visib_ < 2) && ($cobert_ >= 40 && $cobert_ <= 100) && (($precip_ >= 1 && $precip_ <= 5) || $precip_ > 5) ) $color_ = $colors_['desfav'];
  35.     else $color_ = $colors_['desfav'];
  36.  
  37.   } elseif ($oper_ == 'F') //Flir
  38.     {
  39.       if ( ($visib_ > 5 || ($visib_>=2 && $visib_<=5) || $visib_<2) && ($cobert_ >= 0 && $cobert_ <= 40) && ($precip_ < 1 || ($precip_>=1 && $precip_<=5) || $precip_>5) ) $color_ = $colors_['fav'];
  40.       elseif ( ($visib_ > 5 || ($visib_>=2 && $visib_<=5)) && ($cobert_ >= 40 && $cobert_ <= 100) && ($precip_>=1 && $precip_<=5) ) $color_ = $colors_['modfav'];
  41.       elseif ( $visib_<2 && ($cobert_>=40 && $cobert_<=100) && $precip_ > 5) $color_ = $colors_['desfav'];
  42.       else $color_ = $colors_['desfav'];
  43.    }
  44.  
  45.    elseif ($oper_ == 'I')   //Aerofotografia
  46.    {
  47.      if ( ($visib_>5 || ($visib_>=2 && $visib_<=5)) && ($cobert_>=0 && $cobert_<=40) && ($precip_<1 || ($precip_>=1 && $precip_<=5)) ) $color_=$colors_['fav'];
  48.      elseif ( $visib_<2 && ($cobert_>=0 && $cobert_<=40) && $precip_>5 ) $color_=$colors_['modfav'];
  49.      elseif ( ( $visib_>2 || ($visib_>=2 && $visib_<=5) || $visib<2) && ($cobert_>=40 && $cobert_<=100) && ($precip_<1 || ($precip_>=1 && $precip_<=5) || $precip_>5) ) $color_=$colors_['desfav'];
  50.     else $color_=$colors_['desfav'];
  51.    }
  52.  
  53.    //else ($oper_ == 'K')   //Radiofotografia
  54.    else //Radiofotografia
  55.   {
  56.     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'];
  57.     elseif ( ($visib_>=2 && $visib_<=5) && ($cobert_>=40 && $cobert_<=100) && ($precip_>=1 && $precip_<=5) ) $color_ = $colors_['modfav'];
  58.     elseif ( $visib_<2 && ($cobert_>=40 && $cobert_<=100) && $precip_>5 ) $color_ = $colors_['desfav'];
  59.   }
  60.   return $color_ ;
  61. }
  62.  
  63. function getcolorM($nav_cost_af, $nav_cost, $colors_)
  64. {
  65. $navigs = array();
  66. if ($nav_cost_af < 4) $color_ = $colors_['fav'];
  67. elseif ($nav_cost_af >= 4 && $nav_cost <= 6) $color_ = $colors_['modfav'];
  68. else $color_ = $colors_['desfav'];
  69. $navigs[0] = $color_;
  70.  
  71. if ($nav_cost < 4) $color_ = $colors_['fav'];
  72. elseif ($nav_cost >= 4 && $nav_cost <= 6) $color_ = $colors_['modfav'];
  73. else $color_ = $colors_['desfav'];
  74. $navigs[1] = $color_;
  75.  
  76. return $navigs;
  77. }
  78.  
  79.  
  80.  
  81. $mysqli = new mysqli($hostname, $username, $password, $databasename);
  82. if ($mysqli->connect_errno) {
  83.     //echo "Failed to connect to MySQL: " . $mysqli->connect_error;
  84.     header('HTTP/1.1 404 '.$mysqli->connect_error);
  85.     exit();
  86. }
  87.  
  88.  
  89. $area = (int)htmlspecialchars(trim($_GET['_area']));  //Obtiene la info de cada unidad
  90.  
  91.  
  92. $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.
  93.  
  94. $stmt = $mysqli->prepare($str_);
  95. $stmt->bind_param("i", $area);
  96. $stmt->execute();
  97. $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
  98. $stmt->fetch();
  99. $stmt->close();
  100.  
  101. if (isset($abrev))
  102. {
  103.   $kolor = array();
  104.  
  105.   if ($tipo = "T")      // área tipo terrestre
  106.   {
  107.     $str_ =  "SELECT `oper`,`visib`,`cobert`,`precip`,`niv_rios` FROM ind_aereas WHERE `fecha` = ? AND `unidad` = ?";
  108.     $stmt1 = $mysqli->prepare($str_);
  109.     $stmt1->bind_param("si",$fecha,$area);
  110.     $stmt1->execute();
  111.     $stmt1->bind_result($oper,$visib,$cobert,$precip,$niv_rios);  //Captura datos proveniente de indicaciones aereas
  112.     while ($stmt1->fetch())
  113.     {
  114.       $color = getcolorT($oper,$visib,$cobert,$precip,$niv_rios,$colors,$oper_aer01);
  115.       $kolor[$oper] = $color;
  116.     }
  117.   } else {
  118.     $str_ = "SELECT `nv_cost_af`,`nv_cost` FROM ind_marit WHERE `fecha` = ? AND `unidad` = ?";
  119.     $stmt1 = $mysqli->prepare($str_);
  120.     $stmt1->execute();
  121.     $stmt1->bind_param("si",$fecha,$area);
  122.     $stmt1->bind_result($nv_cost_af,$niv_cost);  //Captura datos proveniente de indicaciones maritimas
  123.     while ($stmt1->fetch())
  124.     {
  125.       $color = getcolorM($nv_cost_af, $nv_cost, $colors);
  126.     }
  127.   }
  128.  
  129.   $stmt1->close();
  130.   //var_dump($kolor);
  131.   //print_r($kolor);
  132.   //echo $fecha;
  133.  
  134.  
  135.   ob_start();
  136.   if ($tipo == 'T') include 'plantilla02.html';
  137.   else include 'plantilla03.html';
  138.   $string = ob_get_clean();
  139.   $patterns = array();
  140.   $patterns[0] = '/29/' ;   //temperatura dia :: $temp_d
  141.   $patterns[1] = '/25/' ;   //temperatura noche :: $temp_n
  142.   $patterns[2] = '/60/' ;   //humedad rel. dia :: $hum_d
  143.   $patterns[3] = '/85/' ;   //humedad rel. noc :: $hum_n
  144.   $patterns[4] = '/10%/' ;   //posib lluvia dia :: $posll_d
  145.   $patterns[5] = '/70%/' ; //posib lluvia noche :: $posll_n
  146.   $patterns[6] = '/05\:52/'  ;   //orto sol :: $sol_ort
  147.   $patterns[7] = '/14\:11/'  ;  //orto luna :: $lun_ort
  148.   $patterns[8] = '/18\:21/'  ;  //ocaso sol :: $sol_oca
  149.   $patterns[9] = '/14\:12/'  ;  //ocaso luna :: $lun_oca
  150.   $patterns[10] = '/12\:06/' ;   //max-alt-sol :: $sol_mxalt
  151.   $patterns[11] = '/20\:12/' ;   //max-alt-luna :: $lun_mxalt
  152.   $patterns[12] = '/30/' ;   //viento::dir::dia :: $dirv_d
  153.   $patterns[13] = '/36/' ;   //viento::dir::noche :: $dirv_n
  154.   $patterns[14] = '/6 nudos/' ;   //viento::vel::dia :: $velv_d
  155.   $patterns[15] = '/8 nudos/' ;   //viento::vel::noche :: $velv_n
  156.  
  157.   if ($tipo== 'T') {
  158.    if (array_key_exists('A',$kolor))  $patterns[16] = '/<td class="tg-xha5"><\/td>/';   //operaerea::ametrallamiento
  159.     if (array_key_exists('B',$kolor))  $patterns[17] = '/<td class="tg-23bk"><\/td>/';   //operaerea::bombardeo
  160.     if (array_key_exists('C',$kolor))  $patterns[18] = '/<td class="tg-xha4"><\/td>/';   //operaerea::cohetes
  161.     if (array_key_exists('D',$kolor))  $patterns[19] = '/<td class="tg-tcvo"><\/td>/' ;   //operaerea::transporte
  162.     if (array_key_exists('E',$kolor))  $patterns[20] = '/<td class="tg-5fb6"><\/td>/';   //operaerea::recon_armas
  163.     if (array_key_exists('F',$kolor))  $patterns[21] = '/<td class="tg-38pe"><\/td>/';   //operaerea::flir
  164.     if (array_key_exists('I',$kolor))  $patterns[22] = '/<td class="tg-23bm"><\/td>/';   //operaerea::aerofotografia
  165.     if (array_key_exists('K',$kolor))  $patterns[23] = '/<td class="tg-23bl"><\/td>/';   //operaerea::radiofotografia
  166.     if (array_key_exists('R',$kolor))  $patterns[24] = '/<td class="tg-38pd"><\/td>/';   //operaerea::fluviales
  167.     $patterns[25] = '/PRONOSTICO OPERACIONAL (\w+ \d)/' ;   //titulo
  168.     $patterns[26] = '/"/';
  169.     $patterns[27] = '/\n/';
  170.   } else {
  171.     if (isset($color[1])) $patterns[16] = '/<td class="tg-tcvo" rowspan="3"><\/td>/';   //Navegacion costera
  172.     if (isset($color[0])) $patterns[17] = '/<td class="tg-23bk" rowspan="3"><\/td>/';   //Navegacion costa afuera
  173.     $patterns[18] = '/PRONOSTICO AREA MARITIMA (\w+)/' ;   //titulo
  174.     $patterns[19] = '/\"/';
  175.     $patterns[20] = '/\n/';
  176.   }
  177.  
  178.   //$patterns[] = '/\"/';
  179.   //$patterns[] = '/\n/';
  180.  
  181.   $replacement = array();
  182.   $replacement[0] = $temp_d;
  183.   $replacement[1] = $temp_n;
  184.   $replacement[2] = $hum_d;
  185.   $replacement[3] = $hum_n;
  186.   $replacement[4] = $posll_d.'%';
  187.   $replacement[5] = $posll_n.'%';
  188.   $replacement[6] = substr($sol_ort,0,-3);
  189.   $replacement[7] = substr($lun_ort,0,-3);
  190.   $replacement[8] = substr($sol_oca,0,-3);
  191.   $replacement[9] = substr($lun_oca,0,-3);
  192.   $replacement[10] = substr($sol_mxalt,0,-3);
  193.   $replacement[11] = substr($lun_mxalt,0,-3);;
  194.   $replacement[12] = $dirv_d;
  195.   $replacement[13] = $dirv_n;
  196.   $replacement[14] = $velv_d.' nudos';
  197.   $replacement[15] = $velv_n.' nudos';
  198.  
  199.   if ($tipo== 'T') {
  200.     if (array_key_exists('A',$kolor)) $replacement[16] = '<td class="'.$kolor["A"].'"></td>';   //operaerea::ametrallamiento
  201.     if (array_key_exists('B',$kolor)) $replacement[17] = '<td class="'.$kolor["B"].'"></td>';   //operaerea::bombardeo
  202.     if (array_key_exists('C',$kolor)) $replacement[18] = '<td class="'.$kolor["C"].'"></td>';   //operaerea::cohetes
  203.     if (array_key_exists('D',$kolor)) $replacement[19] = '<td class="'.$kolor["D"].'"></td>';   //operaerea::transporte
  204.     if (array_key_exists('E',$kolor)) $replacement[20] = '<td class="'.$kolor["E"].'"></td>';   //operaerea::recon-armas
  205.     if (array_key_exists('F',$kolor)) $replacement[21] = '<td class="'.$kolor["F"].'"></td>';   //operaerea::flir
  206.     if (array_key_exists('I',$kolor)) $replacement[22] = '<td class="'.$kolor["I"].'"></td>';   //operaerea::aerofotografia
  207.     if (array_key_exists('K',$kolor)) $replacement[23] = '<td class="'.$kolor["K"].'"></td>';   //operaerea::radiofotografia
  208.     if (array_key_exists('R',$kolor)) $replacement[24] = '<td class="'.$kolor["R"].'"></td>';   //operaerea::radiofotografia
  209.     $replacement[25] = 'PRONOSTICO OPERACIONAL '.substr($abrev,0,-1).' '.substr($abrev,-1);
  210.     $replacement[26] = '"';
  211.     $replacement[27] = '';
  212.   } else {
  213.     $replacement[16] = '<td class="'.$color[1].'" rowspan="3"><\/td>';
  214.     $replacement[17] = '<td class="'.$color[0].'" rowspan="3"><\/td>';
  215.     $replacement[18] = 'PRONOSTICO AREA MARITIMA '.$abrev;
  216.     $replacement[19] = '"';
  217.     $replacement[20] = '';
  218.   }
  219.   echo preg_replace($patterns, $replacement, $string);
  220. }
  221. ?>
Advertisement
Add Comment
Please, Sign In to add comment