Der Martin: PNG Erzeugung aus XML-Daten via PHP

Beitrag lesen

Hi,

Ich möchte gern aus einer XML Datei Werte auslesen und diese für die Erzeugung einer PNG-Datei via PHP nutzen. Wenn ich die Werte des Inhalts des XML-Datei an den IMAGE-Generator übergebe meldet mir das System "Die Grafik '<Ablage PHP-Datei>' kann nicht angezeigt werden, weil sie Fehler enthält.".

die wahrscheinlichste Ursache ist, dass eine der Funktionen, die du aufrufst, eine Fehlermeldung ausgibt, die dann als Text am Anfang der vermeintlichen PNG-Grafik steht. Überprüfe das am besten, indem du zum Testen erstmal text/plain als Content-Type angibst und den Aufruf von imagepng() auskommentierst. Wenn du das Script nun aufrufst, darf theoretisch keine Ausgabe kommen.

<?PHP
$lib = new SimpleXMLElement('xml/template.xml',null,true);

// Aufruf der Bildfunktion
bild ($lib->Elements[0]->Text['Width'], 400, 400, 400, "Hallo");


function bild($i_x1, $i_x2, $i_y1, $i_y2, $i_text) {
$x1 = $i_x1;
$y1 = $i_y1;
$x2 = $i_x2;
$y2 = $i_y2;
$Text = $i_text;
$textnr = 4;

header ("Content-type: image/png");
$bild = imagecreate ($x1 , $y1);
imagecolorallocate ($bild, 0, 0, 0);
$text_farbe = ImageColorAllocate ($bild, 255, 255, 0);
 
ImageString ($bild, $textnr, 0, 0, $Text, $text_farbe);
ImagePNG ($bild);
?>

Einen Syntaxfehler sehe ich hier schon auf den ersten Blick: Der Funktion bild() fehlt eine schließende Klammer. Außerdem sehe ich keinen Sinn darin, einen Anweisungsblock, der nur einmal aufgerufen wird (mehr lässt deine Logik gar nicht zu), in eine Funktion zu kapseln.

Wenn ich das Statment $lib->Elements[0]->Text['Width'], durch eine Zahl ersetze funktioniert die Bild erzeugung.

Aber nicht mit dem hier gezeigten Code.

Die Weitergabe eines Textes aus der XML-Datei kann ich an das IMAGE-Statamt übergeben.

Wie bitte??

So long,
 Martin