Hallo Leute, folgendes Script soll eigentlich Aktienkurse grafisch darstellen. Folgendes img-Tag wird erzeugt:
Folgendes HTML-Script erzeugt folglich keine Ausgabe:
Im selben Verzeichnis liegt die Font arial.ttf zum Abruf bereit. Wo liegt der Fehler im Code? Er wird auch mit der Font "coolvetica.ttf" generiert...
Code:
<img src="http://localhost/Beispielprogramme/Aktienkurse/im_aktie.php" alt="The image “http://localhost/Beispielprogramme/Aktienkurse/im_aktie.php” cannot be displayed because it contains errors.">
HTML:
<!Doctype html> <!-- Definition des doctype-Modus -->
<html> <!-- Definition des Stammverzeichnises -->
<head> <!-- Definition des Kopfbereiches -->
<meta charset="utf-8"> <!-- charset[utf-8:] definiert den deutschen Zeichensatz -->
<title> PHP </title> <!-- weist dem HTML-Dokument in der Registerkarte einen Namen zu -->
</head>
<body> <!-- ab hier HTML-Code einfügen -->
<!-- Hier ggf. Formular einfügen einfügen -->
Es folgt ein Bild: <img src="im_aktie.php" alt="not available">
</body>
</html>
PHP:
<?php
// Grafik erzeugen
$im = imagecreate(400, 400);
// Farben, Schriftart
$grau = imagecolorallocate($im, 192, 192, 192);
imagefill($im, 0, 0, $grau);
$s = imagecolorallocate($im, 0, 0, 0);
$r = imagecolorallocate($im, 255, 0, 0);
$schriftart = "arial.ttf";
// Startdatum
$ds = "28.02.2012";
$datum = mktime(0, 0, 0, substr($ds, 3, 2), substr($ds, 0, 2), substr($ds, 6, 4));
$datum = strtotime("-35 day", $datum);
// Kurse
srand((double) microtime() * 1000000);
$kurs[0] = 25;
for ($i = 1; $i < 36; $i++) {
$kurs[$i] = $kurs[$i - 1] + rand(-3, 3);
if ($kurs[$i] < 1)
$kurs[$i] = 1;
}
// Gitternetz, Beschriftung
for ($i = 0; $i < 6; $i++) {
imageline($im, 30, 30 + $i * 340 / 5, 370, 30 + $i * 340 / 5, $s);
imagettftext($im, 11, 0, 375, 30 + $i * 340 / 5, $s, $schriftart, 50 - $i * 10);
imageline($im, 30 + $i * 340 / 5, 30, 30 + $i * 340 / 5, 370, $s);
imagettftext($im, 11, 0, 12 + $i * 340 / 5, 385, $s, $schriftart, date("d.m.", $datum));
$datum = strtotime("+7 day", $datum);
}
// Kurs darstellen
for ($i = 0; $i < 35; $i++){
imageline($im, 30 + $i * 340 / 35, 370 - $kurs[$i] * 340 / 50, 30 + ($i + 1) * 340 / 35, 370 - $kurs[$i + 1] * 340 / 50, $r);
}
// Grafik darstellen
header("Content-Type: image/jpeg");
imagejpeg($im);
// Speicher freigeben
imagedestroy($im);
?>
Zuletzt bearbeitet: