PHP geçersiz görüntü ait ve hata işleme

1 Cevap php

Eğer aşağıdaki yöntemi nihayet çıktı php görüntü kullanabilirsiniz PHP'nin Resim ve GD fonksiyonları kullanma

imagepng($image);

Bazen, herhangi bir nedenle görüntü tipik hata görüntü ile ancak gerçek php işlevleri başarıyla yürütme ile değil değil görüntülenebilir olmayabilir. Ancak bu bana yardım etmez iade edilecek boş bir görüntü olur.

Ne bilmek istiyorum, boş veya geçersiz bir görüntüyü algılar ve yeni bir imaj oluşturmak, imagestring () kullanarak yeni görüntü hataları yazmak ve daha sonra onun yerine bu yeni (hata ayıklama) bir resmi görüntülemek için bir yolu yoktur.

Örneğin, başarılı bir şekilde hatasız görüntü görüntülenir:

$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);

Sonra veya gerçek görüntü oluşturulması ile yapmak olmayabilir php script bazı hatalar tanıtmak ama eğer o php komut başarısız olur ve görüntü görünür olmayacaktır ...

$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);

Bu noktada ben bir görüntü değilim ama yukarıda I değiştirilmesi gibi yeni bir imaj oluşturmak istiyorum! Metin Ben oluştu gerçek bir hata koymak istiyorum.

1 Cevap

Ne yapmak istediğinizi bir "boş bir resim" algılamak değil, yakalamak PHP hataları. Sen set_error_handler(), bir hata oluştuğunda denir özel bir geri arama tanımlamak için kullanabilirsiniz.

Bu tür ayrıştırma hataları gibi şeyler kodunuzu yayınlamadan önce ayıklamak gereken bir şey vardır, ancak bu rasgele hataları (ölüyor veritabanı bağlantıları, etajer) tespit yardımcı olmalıdır.