title image


Smiley Re: Suche PHP-Script für Geburtstagsliste, (ohne MySQL)
Hey kein Problem, für das Skript hab ich so 10 Minuten gebraucht, also ist nicht so wild.



Ok also ich hab dir mal noch eine Kleinigkeit eingebaut die die Geburtstagskinder sortiert, egal wie sie in der Textdatei liegen. Außerdem habe ich auch das Format in der Textdatei auf YYYY-MM-DD geändert. Hier erstmal der Code:





<?

/*

Hilfe:

verarbeite_geburtstagsdatei(<Datei>, <Zeitraum_vor>, <Zeitraum_danach>)

*/

 

$geburtstagskinder = verarbeite_geburtstagsdatei("geburtstage.txt", 7, 14);



for ($f=0; $f<count($geburtstagskinder); $f++)



{

$val = $geburtstagskinder[$f];

echo "<strong>" . $val["datum"] . ":</strong> " . $val["name"] . " (" . $val["age"] . ")<br/>";

}





function verarbeite_geburtstagsdatei($datei, $zeitraum_vor, $zeitraum_danach)

{

$counter = 0;

$geburtstage = file($datei);



foreach ($geburtstage as $key => $data)

{



$vals = explode(":", $data);



if (count($vals)>1)

{



$name = $vals[0];

$bday = string2stamp($vals[1]);



$date_start = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) - $zeitraum_vor * (24 * 60 * 60);

$date_end = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) + $zeitraum_danach * (24 * 60 * 60);



if (($bday > $date_start) && ($bday < $date_end))



{

$age = date("Y") - date("Y", mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)));

$datum = date("d.m", $bday);



$geburtstagskinder[$counter]["name"] = $name;

$geburtstagskinder[$counter]["age"] = $age;

$geburtstagskinder[$counter]["datum"] = $datum;

$geburtstagskinder[$counter]["tstamp"] = mktime(0, 0, 0, date("m", $bday), date("d", $bday));



$counter++;

}



}

}



$geburtstagskinder = sort_array($geburtstagskinder, "tstamp");



return $geburtstagskinder;

}







function string2stamp($string)

{

$date = explode(".", $string);

return mktime(0, 0, 0, $date[1], $date[2], $date[0]);

}





function sort_array($array, $sortby, $order=1)

{

$arr = &$array;

$count = 0;



for ($f=0; $f<count($arr); $f++)



{

$sort[$count] = $arr[$f][$sortby];

$count = $count + 1;

}



 

if ($order==1) @asort($sort);

if ($order==-1) @arsort($sort);



@reset($sort);



$count = 0;

while (list($key, $val)=@each($sort))



{

$new_arr[$count] = $arr[$key];

$count = $count + 1;

}

return $new_arr;

}



?>



Hier die neue geburtstage.txt im neuen Format:

Anna:1984.10.05

Peter:1982.03.23

Tim:1980.05.14

Frank:1981.10.07

Katrin:1982.02.01

Fred:1970.10.01



Außerdem hab ich das ganze mal in eine Funktion umgewandelt wie du oben siehst, so das du bei Bedarf mehrerer solcher Geburtstagslisten auslesen und anzeigen kannst (z.B. könntest du die Geburtstage dadurch in Freunde, Familie, Arbeit, was weiß ich unterteilen).



Falls du Lust hast kannst du auch mal auf meiner Seite innovation-durch-kaffee.de vorbeischauen. Ich werde den Code für das Skript dort wahrscheinlich mal morgen unter Tutorials ablegen und hier und da noch ein paar Kommentare einfügen.



Beste Grüße,

Felix
Innovation durch Kaffee


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: