j4nk3y: imagettftext() erkennt Font nicht

Beitrag lesen

Hallo zusammen,

ich arbeite gerade an einem Kreisdiagramm welches durch php mittels Datanbankzugriff erstellt wird. Soweit klappt das auch ganz gut, jedoch gibt es ein seltsames Problem was ich nicht verstehe.

$frage_b = "SELECT a,b,c,d,e FROM tabelle WHERE id = $p";
$fragen_b = mysql_query($frage_b);
$bev = mysql_fetch_array($fragen_b);
if($bev['e'] < 1000)
{
	unset($bev['e']);
}
$q = 0;
while($q < 9)
{
	unset($bev[$q]);
	$q++;
}

$breite = 400;
$hoehe = 210;
$radius = 200;
$start_x = ($breite/3)*2;
$start_y = $hoehe/2;

$rand_oben = 20;
$rand_links = 20;
$punktbreite = 10;
$abstand = 10;
$schriftgroesse = 10;

$diagramm = imagecreatetruecolor($breite, $hoehe); 

$schwarz = imagecolorallocate($diagramm, 0, 0, 0);
$weiss = imagecolorallocate($diagramm, 255, 255, 255);

$color1 =  imagecolorallocate($diagramm, 0, 191, 255);
$color2 = imagecolorallocate($diagramm, 24, 116, 205);
$color3 = imagecolorallocate($diagramm, 0, 0, 205);
$color4 = imagecolorallocate($diagramm, 0, 205, 102);
$color5 = imagecolorallocate($diagramm, 238, 201, 0);
$color6 = imagecolorallocate($diagramm, 255, 133, 0);
$color7 = imagecolorallocate($diagramm, 255, 48, 48);
$color8 = imagecolorallocate($diagramm, 139, 26, 26);
$color9 = imagecolorallocate($diagramm, 94, 94, 94);

imagefill($diagramm, 0, 0, $weiss);

$i = 0;
$winkel = 0;
$gesamt = array_sum($bev);

foreach($bev as $key => $value)
{
	$i++;
	$start = $winkel;
	$winkel = $start + $value*360/$gesamt;
	$color = "color".$i;
	imagefilledarc($diagramm, $start_x, $start_y, $radius, $radius, $start, $winkel, $$color, IMG_ARC_PIE);
	
	$unterkante = $rand_oben + $punktbreite + ($i - 1) * ($punktbreite + $abstand);
	
	imagefilledrectangle($diagramm, $rand_links, $rand_oben + ($i - 1) * ($punktbreite + $abstand), $rand_links+$punktbreite, $unterkante, $$color);
	imagettftext($diagramm, $schriftgroesse, 0, $rand_links+$punktbreite+5, $unterkante-$punktbreite/2 + $schriftgroesse/2, $schwarz, "arial.ttf", $key." ".round($value*100/$gesamt, 2)." %");
	imagejpeg($diagramm, "test.jpg");
	
}

Das problem besteht nun darin, dass wenn ich diese Diagramm.php direkt über xampp ausführe alles wunderbar ohne Fehler angezeigt wird. Jedoch binde ich diese Datei um 2 Ecken in eine Seite ein funktioniert es nicht mehr.

Das stellt sich wie folgt dar: Ich lade die Seite und in einer <section> wird eine .php aufgerufen, in dieser läuft eine foreach schleife ein Array durch und gibt per echo einen html Quelltext an die Seite zurück. In diesem Quelltext greife ich dann auf die Diagramm.php per include zu. Und in diesem Fall wird die arial.ttf welche im selben Verzeichnis wie die Diagramm.php liegt nicht erkannt und es wird der Fehler:

Warning: imagettftext(): Invalid font filename in...

ausgegeben.

php manual und eine längere Suche ergaben bisher leider keine brauchbare Lösung.

Hoffe jemand kann mir da weiter helfen.

Gruß

Jo