PHP显示错误的图像

时间:2014-03-29 05:39:00

标签: php image datetime

我刚刚编写完脚本,根据时间更改图像。除非它显示错误的图像,否则一切都很好。

<?php

    date_default_timezone_set('America/Los_Angeles');

    $w = date('W');                 # week
    $d = date('N');                 # day
    $t = date('G');                     # time


    dealWithTime($d);

    function dealWithTime($day) {
        if ($w == 13) {                 # Week 13
            if ($day == 1) {
                # Monday
                if ($t >= 0 && $t < 6) {
                    printImage('XD_Holo.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('Midtown.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('Terminal.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('XD_Holo.png');
                } else if ($t >= 18) {
                    printImage('Midtown.png');
                }
            } else if ($day == 2) {
                # Tuesday
                if ($t >= 0 && $t < 6) {
                    printImage('XD_Holo.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('Midtown.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('Terminal.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('XD_Holo.png');
                } else if ($t >= 18) {
                    printImage('Midtown.png');
                }
            } else if ($day == 3) {
                # Wednesday
                if ($t >= 0 && $t < 6) {
                    printImage('XD_Holo.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('Midtown.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('Terminal.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('XD_Holo.png');
                } else if ($t >= 18) {
                    printImage('Midtown.png');
                }
            } else if ($day == 4) {
                # Thursday
                if ($t >= 0 && $t < 6) {
                    printImage('XD_Holo.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('Midtown.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('Terminal.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('XD_Holo.png');
                } else if ($t >= 18) {
                    printImage('Midtown.png');
                }
            } else if ($day == 5) {
                # Friday
                if ($t >= 2 && $t < 8) {
                    printImage('Midtown.png');
                } else if ($t >= 8 && $t < 12) {
                    printImage('Terminal.png');
                } else if ($t >= 12 && $t < 16) {
                    printImage('XD_Holo.png');
                } else if ($t >= 16 && $t < 20) {
                    printImage('Midtown.png');
                } else if ($t >= 20) {
                    printImage('Terminal.png');     // SHOULD BE THIS ONE
                }
            } else if ($day == 6) {
                # Saturday
                if ($t >= 0 && $t < 6) {
                    printImage('XD_Holo.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('Midtown.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('Terminal.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('XD_Holo.png');
                } else if ($t >= 18 && $t < 22) {
                    printImage('Midtown.png');
                } else if($t >= 22) {
                    printImage('Terminal.png');
                }
            } else if ($day == 7) {
                # Sunday
                if ($t >= 2 && $t < 8) {
                    printImage('XD_Holo.png');
                } else if ($t >= 8 && $t < 12) {
                    printImage('Midtown.png');
                } else if ($t >= 12 && $t < 16) {
                    printImage('Terminal.png');
                } else if ($t >= 16 && $t < 20) {
                    printImage('XD_Holo.png');
                } else if ($t >= 20) {
                    printImage('Midtown.png');
                }
            }
        } else if ($w == 14) {      # Week 14
            if ($day == 1) {
                # Monday
                if ($t >= 0 && $t < 6) {
                    printImage('Terminal.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('XD_Holo.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('Midtown.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('Terminal.png');
                } else if ($t >= 18 && $t < 22) {
                    printImage('XD_Holo.png');
                } else if ($t >= 22) {
                    printImage('Midtown.png');
                }
            } else if ($day == 2) {
                # Tuesday
                if ($t >= 2 && $t < 8) {
                    printImage('Terminal.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('XD_Holo.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('Midtown.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('Terminal.png');
                } else if ($t >= 18) {
                    printImage('XD_Holo.png');
                }
            } else if ($day == 3) {
                # Wednesday
                if ($t >= 0 && $t < 6) {
                    printImage('fin.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('fin.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('fin.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('fin.png');
                } else if ($t >= 18) {
                    printImage('fin.png');
                }
            } else if ($day == 4) {
                # Thursday
                if ($t >= 0 && $t < 6) {
                    printImage('fin.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('fin.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('fin.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('fin.png');
                } else if ($t >= 18) {
                    printImage('fin.png');
                }
            } else if ($day == 5) {
                # Friday
                if ($t >= 0 && $t < 6) {
                    printImage('fin.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('fin.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('fin.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('fin.png');
                } else if ($t >= 18) {
                    printImage('fin.png');
                }
            } else if ($day == 6) {
                # Saturday
                if ($t >= 0 && $t < 6) {
                    printImage('fin.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('fin.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('fin.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('fin.png');
                } else if ($t >= 18) {
                    printImage('fin.png');
                }
            } else if ($day == 7) {
                # Sunday
                if ($t >= 0 && $t < 6) {
                    printImage('fin.png');
                } else if ($t >= 6 && $t < 10) {
                    printImage('fin.png');
                } else if ($t >= 10 && $t < 14) {
                    printImage('fin.png');
                } else if ($t >= 14 && $t < 18) {
                    printImage('fin.png');
                } else if ($t >= 18) {
                    printImage('fin.png');
                }
            }
        } else {                            # else
            printImage('fin.png');
        }
    }

    function printImage($im) {
        $file = $im;
        $type = 'image/png';
        header('Content-Type:'.$type);
        header('Content-Length: ' . filesize($file));
        readfile($file);
    }

?>

当你向下滚动时,你应该看到一条评论,说明应该是什么形象(截至本文)。

我还写了另一个脚本,看看是不是时间错了,但它给了我正确的结果。

<?php
    date_default_timezone_set('America/Los_Angeles');

    $w = date('W');                 # week
    $d = date('N');                 # day
    $t = date('G');                     # time
?>


<!DOCTYPE html>
<html>
    <head>

    </head>

    <body>
        <h2>Week:</h2>
        <span><?php echo $w; ?></span>

        <h2>Day:</h2>
        <span><?php echo $d; ?></span>

        <h2>Time:</h2>
        <span><?php echo $t; ?></span>
    </body>
</html>

第一个脚本可以在这里看到:http://spedwards.cz.cc/event/e.php

第二个是:http://spedwards.cz.cc/event/t.php

我不会更改这些文件,因此他们将至少与该问题保持一个月的相关性。

有人可以向我解释为什么没有显示正确的图片吗?所有4张图片都在同一目录中。

2 个答案:

答案 0 :(得分:1)

您没有将变量传递给函数调用。

例如:

dealWithTime($w, $d, $t);

function dealWithTime($w, $day, $t) {

答案 1 :(得分:-1)

日期格式函数的返回值是字符串,您试图将它们评估为整数。

在评估之前,您应该使用(int) $d将变量转换为int。