2014-03-29 60 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