I';我正在编程一个php系统,根据给该方法的参数加载一个图像。图像正在加载为断开的图像

I';我正在编程一个php系统,根据给该方法的参数加载一个图像。图像正在加载为断开的图像,php,loading,brokenimage,Php,Loading,Brokenimage,我正在编写一个php系统,根据给该方法的参数加载一个图像。直到最近,当我修改它时,这段代码一直工作得很好。这是一个经典的“它曾经起作用,但现在,突然之间,它不是”案例。我不知道我做了什么把事情搞砸了,也就是说如果我做了什么把事情搞砸了 public function image($parameters) { //default values for parameters $param1 = ' '; $param2 = ' '; if(!empty($para

我正在编写一个php系统,根据给该方法的参数加载一个图像。直到最近,当我修改它时,这段代码一直工作得很好。这是一个经典的“它曾经起作用,但现在,突然之间,它不是”案例。我不知道我做了什么把事情搞砸了,也就是说如果我做了什么把事情搞砸了

public function image($parameters) {

    //default values for parameters
    $param1 = ' ';
    $param2 = ' ';

    if(!empty($parameters)) {

        foreach($parameters as $key => $value){

            if(!empty($parameters[$key+1])) {

                $value = $value . '/';

            }

            switch($key) {

                case 2:
                    $param1 = $value;
                break;
                case 3:
                    $param2 = $value;
                break;

            }
        }

    }

    $dir = '/resources/images/';
    $file = VIEWDIR . $dir . $param1 . $param2;
    echo $file;
    if(file_exists($file)) {

        $file = file_get_contents($file);
        header("Content-type: image/png");
        echo $file;

    }

}

上面的代码生成了以下HTML

在设置标头之前,您不能回显$file,因为这样会中断输出

发件人:


请记住,在发送任何实际输出之前,必须先调用header(),可以是通过普通HTML标记、文件中的空行,也可以是从PHP中调用。使用include或require函数或其他文件访问函数读取代码,并且在header()之前输出空格或空行,这是非常常见的错误调用。使用单个PHP/HTML文件时也存在相同的问题。“

为什么要在exists行之前回显文件?@KaiQing很可能是一个调试语句,以确保路径“正确”,并且请定义“不工作”,这不会告诉我们任何信息。是的,这正是问题所在。只是指出他是以这种方式发布的。他会得到很多关于这件事的评论@用户-您是否已查看源以显示正在显示的内容?也许这篇文章可以帮助澄清这一点。