Php 如何调试图像创建

Php 如何调试图像创建,php,gd,php-imagine,Php,Gd,Php Imagine,我正在尝试修复/调试一个站点,该站点中的所有图像都是由脚本生成的。另一个开发者创建了这个。现在由于某种原因,所有的图像都不工作了 我正在尝试调试代码,并尝试在它应该工作的地方破坏它,这样我就可以看到破坏了什么,并建立一个基线。但我找不到一个方法来调试这个正确 有没有人能告诉我如何调试下面的脚本或者哪些脚本可能会被破坏?我所做的一切似乎都不管用 更新:谢谢佩卡웃 注释我现在可以看到错误,并在第496行的/var/www/vhosts/mysticina.co.uk/httpdocs/inc/cla

我正在尝试修复/调试一个站点,该站点中的所有图像都是由脚本生成的。另一个开发者创建了这个。现在由于某种原因,所有的图像都不工作了

我正在尝试调试代码,并尝试在它应该工作的地方破坏它,这样我就可以看到破坏了什么,并建立一个基线。但我找不到一个方法来调试这个正确

有没有人能告诉我如何调试下面的脚本或者哪些脚本可能会被破坏?我所做的一切似乎都不管用

更新:谢谢佩卡웃 注释我现在可以看到错误,并在第496行的/var/www/vhosts/mysticina.co.uk/httpdocs/inc/class.images.php中显示
警告:imagejpeg():文件名不能为空

该行是在该行之后的
imagejpg()

if ($imageModify == "grey") {
                    imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE);
                }
代码

当您声明:

我正在尝试修复/调试一个站点,该站点中的所有图像都将被删除 由脚本生成

查看这段代码意味着站点的图像实际上是通过
file\u exists()以某种方式存储在文件系统中的。
check:

    $thisImage = $documentRoot . $imageFolder . $imageName;
    if (file_exists($thisImage)) {
        if ((empty($width)) || (empty($height))) {
            $row = getimagesize($thisImage);
            $width = $row[0];
            $height = $row[1];
        }
        if ((isset($maxWidth)) && (($width > $maxWidth) || ($height > $maxHeight))) {
            $functiontoRun = "imagecreatefrom" . $tempImageType;
            $this->image = $functiontoRun($thisImage);
            if (!$this->image) {
                $this->image = imagecreatefromjpeg($thisImage);
            }
另外,看看大量重复的代码,再加上这组奇怪的
if(
checks),我将集中讨论
函数showImage($options=array()){
的代码

现在回复你的评论,你告诉我们网站是什么&图片没有加载

加载如下URL:

http://www.mysticindia.co.uk/images/galleries/small/square/JCxTPFAsMGBgCmA.jpg
显示了一个错误-我假设是由调试引起的,如下所示:

http://www.mysticindia.co.uk/images/galleries/small/square/JCxTPFAsMGBgCmA.jpg
_image.phpA:Resource id#11警告:imagejpeg(JC0jQFgsMGBgCmA.jpg):无法打开流:第496行/var/www/vhosts/mysticina.co.uk/httpdocs/inc/class.images.php中的权限被拒绝

无法打开流
告诉我,虽然您说图像是由脚本生成的,但文件系统交互显然是在某个时刻发生的

那么这个错误是:

第496行/var/www/vhosts/mystidia.co.uk/httpdocs/inc/class.images.php中的权限被拒绝

似乎告诉我错误不在您的代码中,而是在文件系统权限中。似乎脚本确实在生成派生的缩略图和父映像的其他版本。但在某些时候,脚本以某种方式将它们缓存到文件系统中。不清楚源映像来自何处—数据库中的一个BLOB,但我的best现在的建议是查看站点的文件系统权限&查看是否有任何更改


我的意思是,您或其他人没有在这个脚本上捣乱,但它停止了工作,对吗?我敢打赌,这个脚本用来缓存派生产品的目录已经不存在,或者拥有不正确的所有权或权限。类似的情况会阻塞这个过程。

第一步:删除
标题(“内容类型…”)
行,以便在调用图像(而不是损坏的图像资源)时,当您说“现在由于某些原因所有图像都无法工作”时,您可以直接在浏览器中看到错误你的意思是什么?图像链接是否断开?图像是否保存到文件系统中?或者是否存储在数据库中?基线预期行为是什么?如果有,日志会说什么?确保在ini_集合中也显示了错误(“显示错误”,1)@JakeGould站点本身是,所有图像都不工作。我不知道开发人员留下的基线是什么…看起来这些图像不在您的站点存储中,但存在于数据库中。请尝试检查此图像/images/galleries/small/square/jcxtpfasugbma.jpg,或者需要从您的web服务器允许对这些图像的权限。错误或者,您在“无法打开流”上看到的是当我尝试在函数中输入一些名称时,因为最初的错误是它必须有一个名称。但请看以下内容:
Warning:imagejpeg(JC0jQFgsMGBgCmA.jpg):无法打开流
JC0jQFgsMGBgCmA.jpg
显然是脚本生成的缓存文件名。无论保存到何处或访问到何处,都是问题所在。我将JC0jQFgsMGBgCmA.jpg放入测试,以测试我是否插入了一个会出错的名称。原始错误是
警告:imagejpeg():第497行/var/www/vhosts/mysticina.co.uk/httpdocs/inc/class.images.php中的文件名不能为空