2014-03-29 92 views
0

我刚写完脚本,根据时间改变图像。除了显示错误的图像之外,这一切都很好。PHP显示错误的图像

<?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张图片都在同一个目录中。

回答

1

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

例如:

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

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

你确定你必须?我知道你不必在Javascript和Java中这样做,所以我不认为这有什么不同。 – Spedwards

+0

Javascript和PHP是非常不同的野兽。如果您不想通过参数将变量传递给函数,但仍希望能够访问它们,请考虑使用静态变量或使用全局范围。 您的问题在这里详细解释:(与解决方案) http://www.php.net/manual/en/language.variables.scope.php –

+0

谢谢。你可能猜到了,我是PHP新手。我只是觉得这并不重要。 – Spedwards

-1

日期格式函数是字符串的返回值,你想他们评估为整数。

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

+0

date('N')以1到7之间的整数形式返回。1是星期一,7是星期日。我使用的格式字符返回整数。看到这里:http://www.php.net/manual/en/function.date.php – Spedwards

+0

请阅读你分享它的链接说 '返回一个字符串格式根据给定的格式字符串使用给定的整数时间戳或当前时间,如果没有给出时间戳。换句话说,时间戳是可选的,并且默认为time()的值。' 我没有注意到你正在向函数传递参数,但绝对不需要反投票。 – asp

+0

var_dump(date('d')); 给你; string(2)“30” – asp