3
使用PHP的圖像和GD功能,可以用下面的方法來最終輸出的PHP圖片PHP無效圖像的和錯誤處理
imagepng($image);
有時,無論出於何種原因,圖像可能不會顯示一般的誤差不與圖像,但與實際的PHP功能不能成功執行。但是,這會導致返回空白圖像,這對我沒有幫助。
我想知道的是,有沒有辦法檢測空白或無效圖像並創建一個新圖像,使用imagestring()將錯誤寫入新圖像,然後顯示新的(調試)圖像。
例如,成功地顯示的圖像沒有任何錯誤:
$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);
但如果我再介紹在PHP腳本,可能會或可能不會與實際圖像創作那麼php腳本做一些錯誤失敗,圖像將不可見......
$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);
在這一點上我想上面一樣,但在更換我的圖像創建一個新的形象!文本我會把發生的實際錯誤。
用你已經採取的具體例子,你會有一個解析錯誤*(語法錯誤:無分號)*,這意味着PHP腳本甚至不會開始執行;;並且如果添加分號,則會發生致命錯誤*(調用一個不存在的函數)* ;;無論哪種情況,您都無法做到:您無法從這些中恢復 - 最好的解決方案是觀察服務器的日誌文件。 – 2010-04-04 14:35:08
p.s.如果在嘗試顯示在瀏覽器中之前未檢測到圖像,則會提供以下錯誤。 圖像「genimage.php?Number = 4」無法顯示,因爲它包含錯誤。 我實際上正在下載所說的php圖像,並在應用程序中使用它,所以它將有助於我將錯誤編寫爲新圖像併發送。 此外,實際上在瀏覽器中提供的錯誤對我來說是無用的,因爲我知道它包含錯誤...我想知道通常的PHP的東西......問題的行號,假定的問題等。 。 謝謝。 – 2010-04-04 14:38:58
最後一件事 有沒有一種方法可以簡單地不返回圖像,而是寫一個更全面的錯誤信息......一個實際上提供了一些更深入的瞭解,在我的PHP腳本錯誤發生在哪裏 – 2010-04-04 14:39:48