Névnapok

 

            Az operációs rendszer és a böngésző beállításaitól függően, a neten lévő állományok egy része a böngésző által közvetlenül megnyithatók. Ilyenek például a Webes dokumentumok, szöveges állományok, a PDF állományok vagy a kép- és médiafájlok. Ha a fájl nem nyitható meg, akkor a böngésző letöltésre ajánlja fel a számára nem megnyitható állományt. Tegyük fel, hogy Webhelyünkre az idők folyamán sok adatot kézzel feltöltöttünk, adatbázisba írtuk, de szeretnénk letölteni számítógépünkre. Legyen a példa kedvéért ez az adatállomány az év népnapjai (minden napra csak egy névnap – az egyszerűség kedvéért).

 

Létezzen ez az adattábla az adatbázisban nevnapok néven. A táblában csak id (INT, elsődleges kulcs) és NNap (VARCHAR(16)) mezők vannak.. A rekordok száma így 366, gondolva a szökőévekre is. A kis alkalmazásunk olvassa ki az adattáblából a névnapokat és jelenítse meg a következőképpen:

 

 

            Mint látható, az aktuális napot zöldeskék háttérszínnel jeleníti meg a program. Legyen a lapon egy Letölt gomb amellyel, a megjelenítéssel egy időben létrejött nevnapok.vcs, Excellel kezelhető állományt letölthetjük a saját gépünkre. Ennek megnyomása után választhatunk megnyitást, vagy mentés másként (névadás és hely) lehetőségek közül:

 

 

            És íme a végeredmény, az Excelben megnyitott nevnapok.csv állomány:

 

 

            A leírt feladatot megvalósító php kód:

 

            http://gorbem.hu/PH/Nevnapok.php

 

<?php

   if ( isset($_POST['letolt']) ){

        header("location: nevletolt.php");

   }

?>

<html>

<head>

<title>Névnapok - letöltés</title>

</head>

<body>

<center>

<form name="" action="" method="POST">

<font size="5"><b><u>Névnapok:</u> &nbsp; </b></font>

<input type="submit" name="letolt" value="Letölt">

</form>

<?php

   $File= 'nevnapok.csv';

   $fp = fopen($File,"w");

   include("hconfig.php");

  

   $hn = array('','Január','Február','Március','Április','Május','Június',

'Július','Augusztus','Szeptember','Október','November','December');

   $hh = array(0,31,28,31,30,31,30,31,31,30,31,30,31);

   $ma = getdate();

   $ev = $ma[year];

   $ho = $ma[mon];

   $nap = $ma[mday];

   $szoko = false;

   if ( checkdate(2,29,$ev) ){

        $szoko = true;

        $hh[2] = 29;

   }

   print "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">";

   print "<tr>";

   $outst = '';

   for ($i=1; $i<=12; $i++){

        print "<th><font size=\"2\">$hn[$i]</font></th>";

        $outst = $outst.$hn[$i].";";

   }

   print "</tr>";

   $outst = $outst."\n";

   fwrite($fp,$outst);

  

   for ($i=1; $i<=31; $i++){

        $outst = '';

        print "<tr>";

        for ($j=1; $j<=12; $j++){

             if ( checkDate($j,$i,$ev) ){

                  $n = 0;

                  for ($k=1; $k<$j; $k++){

                      $n = $n+$hh[$k];

                  }

                  $n = $n+$i;

                  if ( !$szoko && ($n > 54) ){

                      $n++;

                  }

                  $ered = mysql_query("SELECT * FROM nevnapok WHERE id='$n'");

                  $egys = mysql_fetch_object($ered);

                 $nnap = $egys->NNap;

                  if ( ($j == $ho) && ($nap == $i) ){

                      print "<td bgcolor=\"cyan\"><font size=\"2\">$i.$nnap</font></td>";

                  }

                  else{

                      print "<td><font size=\"2\">$i.$nnap</font></td>";

                  }

                  $outst = $outst.$i.".".$nnap.";";

             }

             else{

                  print "<td>&nbsp;</td>";

                  $outst = $outst.";";

             }

        }

        print "</tr>";

        $outst = $outst."\n";

        fwrite($fp,$outst);

   }

   print "</table>";

   fclose($fp);

?>

</body>

</html>

 

A letöltést kiváltó kód pedig csak ennyi:

 

            http://gorbem.hu/PH/nevletolt.php

 

<?php

   header("location: nevnapok.csv");

?>