gpt4 book ai didi

PHP 无效图像和错误处理

转载 作者:搜寻专家 更新时间:2023-10-31 21:18:44 25 4
gpt4 key购买 nike

利用PHP的Image和GD函数可以使用下面的方法最终输出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);

此时我想创建一个像上面那样的新图像,但要替换 I am an image! text 我会写出实际发生的错误。

最佳答案

您要做的是捕获 PHP 错误,而不是检测“空白图像”。您可以使用 set_error_handler()定义发生错误时调用的自定义回调。

诸如解析错误之类的事情是您在发布代码之前应该调试的,但这应该有助于您检测随机错误(数据库连接中断,诸如此类)。

关于PHP 无效图像和错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com