Bild mit imagepng () erstellen (schlägt bei Header fehl)

Ich habe mit Code für ein benutzerdefiniertes Thema gekämpft.

Das Ergebnis: Erstellen Sie ein Bild mit Text.

Das Problem: Fehler beim Header: code bei der Produktion.

Das Lustige ist, dass die function lokal einwandfrei funktioniert, aber wenn ich alles auf die Produktion hochlade, scheitert es.

Der Code:

 $euro = get_option('euro'); $super = get_option('super'); $diesel = get_option('diesel'); $autogas = get_option('autogas'); // create array for prices $arrayPrice = array( 0 => $euro, 1 => $super, 2 => $diesel, 3 => $autogas ); // Create array for fuels $arrayFuels = array( 0 => 'euro', 1 => 'super', 2 => 'diesel', 3 => 'autogas' ); for($i = 0; $i < count($arrayPrice); $i++) { // Set the content-type header('Content-Type: image/png'); // Create the image $im = imagecreatetruecolor(105, 27); // Create some colors $white = imagecolorallocate($im, 255, 255, 255); $black = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 399, 29, $white); // The text to draw $text = $arrayPrice[$i]; // Replace path by your own font path $font = ABSPATH.'wp-content/themes/gulf-venlo/ledboard.ttf'; // Add the text imagettftext($im, 20, 0, 0, 27, $black, $font, $text); // Using imagepng() results in clearer text compared with imagejpeg() ob_start(); imagepng($im); $data = ob_get_clean(); file_put_contents(ABSPATH.'wp-content/themes/gulf-venlo/img/'.$arrayFuels[$i].'.png', $data); imagedestroy($im); } 

Ich habe verschiedene Techniken ausprobiert, wie:

  • Setzen Sie die function auf ihre eigene Seite und fügen Sie sie hinzu
  • Verwenden Sie weitere OB-functionen (start, destroy, get_clean)

Lokales Ergebnis

Das Ergebnis auf meiner lokalen Umgebung ist genau das, was es sein soll: Ich gebe einige Preise für jede Art von Treibstoff ein und spare die Änderungen. Danach wird jedes Bild auf der Homepage der Website auf den neuen Preis aktualisiert.

Online-Ergebnis

Wenn ich die Preise bearbeiten möchte, klicke ich in meinem benutzerdefinierten Menü auf “Kraftstoff”, um eine leere Seite mit einem blauen Rechteck und einem Fragezeichen zu finden (siehe: http://goo.gl/fwxJXo ).

Andere

Ich weiß, dass der Code etwas Arbeit braucht, da ich sicher bin, dass es eine bessere Möglichkeit gibt, die Bilder in einem Ordner innerhalb des Themes zu speichern.

Getriggers (bearbeiten: 7. Mai 2015)

Vor einiger Zeit habe ich header('Content-Type: image/png'); gelöscht header('Content-Type: image/png'); und es funktioniert auf magische Weise. Ich benutzte Kommentare ( //header('Content-Type: image/png'); ), um sie zu deaktivieren, aber das schien den Trick nicht zu machen.

Solutions Collecting From Web of "Bild mit imagepng () erstellen (schlägt bei Header fehl)"

Sie könnten versuchen, get_template_directory() anstelle von ABSPATH . Wenn sich der wp-Inhalt nicht am ursprünglichen Speicherort auf dem Produktionsserver befindet, könnte das Ihr Problem lösen.

get_template_directory() das Fehlen eines get_template_directory() Schrägstrichs nach get_template_directory() :

 $font = get_template_directory().'/ledboard.ttf'; ... file_put_contents(get_template_directory().'/img/'.$arrayFuels[$i].'.png', $data); 

Getriggers (bearbeiten: 7. Mai 2015)

Vor einiger Zeit habe ich header('Content-Type: image/png'); gelöscht header('Content-Type: image/png'); und es funktioniert auf magische Weise. Ich benutzte Kommentare ( //header('Content-Type: image/png'); ), um sie zu deaktivieren, aber das schien den Trick nicht zu machen.