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>
</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> </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");
?>