<?php
header("Content-type: image/png");
error_reporting(E_ALL);
ini_set('display_errors', 1);
$filename = "http://de.wikibooks.org/wiki/Einf%C3%BChrung_in_die_Astronomie:_Sonne:_Eph2014";
// erstellen eines leeren Bildes mit 2000px Breite und 2000px Höhe
$bild = imagecreatetruecolor(2000, 2000);
$weiss = imagecolorallocate($bild, 255, 255, 255);
imagefilledrectangle ($bild, 1, 1, 1999,1999, $weiss);
$schwarz = imagecolorallocate($bild, 0, 0, 0);
$x_oben = 10;
$y_oben = 10;
$x_unten = 1490;
$y_unten = 990;
imagerectangle($bild, $x_oben, $y_oben, $x_unten, $y_unten, $schwarz);
//imagepng($bild); //Hier funktioniert es noch!
//Datei öffnen
$handle = fopen($filename, "r");
$Inhalt = file_get_contents ($filename);
$Zeile = explode("\n",file_get_contents ($filename));
$Startzeile = 1;
$Endzeile = count($Zeile) - 1;
$i = $Startzeile ; // wichtig, weil Variable verwendet wurde!
$Tzahl1 = -1;
$Tzahl2 = 0;
while ($i < $Endzeile)
{
//echo $Zeile[$i]."\n";
$Wert1 = ltrim($Zeile[$i],"<td>");
if ($Tzahl2 < 366)
{
$Wert2 = ltrim($Zeile[$i + 6],"<td>");
}
else
{
$Wert2 ="";
}
$Wert1 = rtrim($Wert1,"</td>");
$Wert2 = rtrim($Wert2,"</td>");
$Wert1 = trim($Wert1);
$Wert2 = trim($Wert2);
//echo $Wert1."\n";
if ((Gradmacher($Wert1) === -1) or
(substr($Wert1,0,1) === "<") or
(substr($Wert1,0,1) === "/"))
{
}
else
{
$Gradzahl1 = Gradmacher ($Wert1);
$Gradzahl2 = Gradmacher ($Wert2);
$Tzahl1 = $Tzahl1 + 1;
$Tzahl2 = $Tzahl2 + 1;
//echo trim($Wert2)."\n";
//echo $Tzahl1." ".$Tzahl2." ".$Gradzahl1." ".$Wert2."\n";
if ((Gradmacher($Wert2) === -1) or
(substr($Wert2,0,1) === "<") or
(substr($Wert2,0,1) === "/"))
{
}
else
{
if (($Gradzahl2 - $Gradzahl1)< -100)
{
$Quotient1 = (360.0-$Gradzahl1)/(360.0 +$Gradzahl2 - $Gradzahl1);
$Tzahl3 = $Tzahl1 + (($Tzahl2 - $Tzahl1) * $Quotient1);
//imageline($bild,$x_unten - (($x_unten-$x_oben) * ($Gradzahl1/360)),$y_unten - (($y_unten-$y_oben) *($Tzahl1/365)) , $x_oben, $y_unten - (($y_unten-$y_oben) *($Tzahl3/365)), $schwarz);
//imageline($bild,$x_unten,$y_unten - (($y_unten-$y_oben) *($Tzahl3/365)) , $x_unten - (($x_unten-$x_oben) * ($Gradzahl2/360)), $y_unten - (($y_unten-$y_oben) *($Tzahl2/365)), $schwarz);
//echo $Tzahl1." ".$Tzahl2." ".$Gradzahl1." ".$Gradzahl2."\n";
}
else
{
if (($Gradzahl1 - $Gradzahl2)< -100)
{
$Quotient1 = $Gradzahl1/(360.0 +$Gradzahl1 - $Gradzahl2);
$Tzahl3 = $Tzahl1 + (($Tzahl2 - $Tzahl1) * $Quotient1);
//echo $Tzahl1." ".$Tzahl2." ".$Gradzahl1." ".$Gradzahl2."\n";
//imageline($bild, $x_unten - (($x_unten-$x_oben) * ($Gradzahl1/360)), $y_unten - (($y_unten-$y_oben) *($Tzahl1/365)), $x_unten,$y_unten - (($y_unten-$y_oben) *($Tzahl3/365)),$schwarz);
//imageline($bild,$x_oben,$y_unten - (($y_unten-$y_oben) *($Tzahl3/365)), $x_unten - (($x_unten-$x_oben) * ($Gradzahl2/360)), $y_unten - (($y_unten-$y_oben) *($Tzahl2/365)), $schwarz);
//ggf. noch zu testen!
}
else
{
//echo $Tzahl1." ".$Tzahl2." ".$Gradzahl1." ".$Gradzahl2."\n";
//Hier grafische Ausgabe
//imageline($bild,$x_unten - (($x_unten-$x_oben) * ($Gradzahl1/360)),$y_unten - (($y_unten-$y_oben) *($Tzahl1/365)) , $x_unten - (($x_unten-$x_oben) * ($Gradzahl2/360)), $y_unten - (($y_unten-$y_oben) *($Tzahl2/365)), $schwarz);
}
}
//imagepng($bild);
}
}
$i = $i + 1;
}
imagepng($bild);
imagedestroy($bild);
//echo imagewbmp($bild);
fclose($handle);
?>
<?php
function Gradmacher ($Wert)
{
$Wert = trim($Wert);
if (strpos($Wert,"h") === 1)
{
$Stundenwert = substr($Wert,0,1);
$Minutenwert = substr($Wert,2,1).substr($Wert,3,1);
$Sekundenwert = substr($Wert,5,1).substr($Wert,6,1).substr($Wert,7,1).substr($Wert,8,1);
//echo $Stundenwert."Std".$Minutennwert."M".$Sekundennwert ;
$Gradwert = (float)(15*$Stundenwert) + (float)(0.25*$Minutenwert) + (float)($Sekundenwert/240);
return $Gradwert;
}
else
{
if (strpos($Wert,"h") === 2)
{
$Stundenwert = substr($Wert,0,1).substr($Wert,1,1);
$Minutenwert = substr($Wert,3,1).substr($Wert,4,1);
$Sekundenwert = substr($Wert,6,1).substr($Wert,7,1).substr($Wert,8,1).substr($Wert,9,1);
$Gradwert = (float)(15*$Stundenwert) + (float)(0.25*$Minutenwert) + (float)($Sekundenwert/240);
//echo $Stundenwert."Std".$Minutennwert."M".$Sekundennwert ;
return $Gradwert;
}
else
{
return -1;
}
}
}