PHP ungültige Bilder und Fehlerbehandlung

Mit den Bild- und GD-Funktionen von PHP können Sie die folgende Methode verwenden, um das PHP-Bild endgültig auszugeben

imagepng($image);

Manchmal, aus welchem Grund auch immer, wird das Bild möglicherweise nicht angezeigt. In der Regel liegt der Fehler nicht beim Bild, sondern daran, dass die eigentlichen PHP-Funktionen nicht erfolgreich ausgeführt werden. Dies führt jedoch dazu, dass ein leeres Bild zurückgegeben wird, was mir nicht hilft.

Was ich wissen möchte ist, gibt es eine Möglichkeit, ein leeres oder ungültiges Bild zu erkennen und ein neues Bild zu erstellen, die Fehler mit imagestring () in das neue Bild zu schreiben und stattdessen dieses neue (Debug-) Bild anzuzeigen.

Zum Beispiel ein erfolgreich angezeigtes Bild ohne Fehler:

$image  = imagecreate(256, 256); //create image
imagecolortransparent($image, $BLUE); //set transparent
imagefilledrectangle($image, 0, 0, 256, 256, $BLUE); //fill with 'transparent colour'

//Draw a border round the image
imageline($image, 0, 0, 0, 255, $Black);
imageline($image, 0, 0, 255, 0, $Black);
imageline($image, 255, 0, 255, 255, $Black);
imageline($image, 0, 255, 255, 255, $Black);

imagestring($image, 1, 10, 10, "I am an image!", $Black);

imagepng($image);
imagedestroy($image);

Aber wenn ich dann einige Fehler in das PHP-Skript einbringe, die möglicherweise nicht mit der eigentlichen Image-Erstellung zusammenhängen, dann schlägt das PHP-Skript fehl und das Image wird nicht sichtbar sein ...

$image  = imagecreate(256, 256); //create image
imagecolortransparent($image, $BLUE); //set transparent
imagefilledrectangle($image, 0, 0, 256, 256, $BLUE); //fill with 'transparent colour'

//Draw a border round the image
imageline($image, 0, 0, 0, 255, $Black);
imageline($image, 0, 0, 255, 0, $Black);
imageline($image, 255, 0, 255, 255, $Black);
imageline($image, 0, 255, 255, 255, $Black);

imagestring($image, 1, 10, 10, "I am an image!", $Black);

/* I am here to cause problems with the php script 
** and cause the execution to fail, I am a function 
** that does't exist...
**
** and I am missing a semi colon! ;)*/
non_existant_function() 

imagepng($image);
imagedestroy($image);

An diesem Punkt möchte ich ein neues Bild wie oben erstellen, aber als Ersatz für das bin ich ein Bild! text Ich würde den tatsächlichen Fehler, der aufgetreten ist, setzen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage