2017-10-21 6 views
-5

私はいくつかの助けと私のPHPコードを簡素化する方法を説明する必要があります。このPHPコードを単純化するには

これは機能していますが、繰り返しコードがほとんどないようです。

基本的には、ショップが閉鎖されているときに書式設定済みのテキストを表示する日時と、デスクトップやモバイルデバイス上の異なるテキストをチェックしたいとします。

読んでいただきありがとうございます。

<?php 
    include 'Mobile_Detect.php'; 
    $detect = new Mobile_Detect(); 
    //Get time 
    $hour = date("H", mktime(date("H"))); 
    $day = date("D"); 

    if($day == 'Mon' && ($hour >= 6 && $hour < 22)) { 
     if ($detect->isMobile()) 
     { 
     include 'online_mobile.php'; 
     } else 
     { 
     include 'online_desktop.php'; 
     } 
    }  
    elseif($day == 'Tue' && ($hour >= 6 && $hour < 22)) { 
     if ($detect->isMobile()) 
     { 
     include 'online_mobile.php'; 
     } else 
     { 
     include 'online_desktop.php'; 
     } 
    }       
    elseif($day == 'Wed' && ($hour >= 6 && $hour < 22)) { 
     if ($detect->isMobile()) 
     { 
     include 'online_mobile.php'; 
     } else 
     { 
     include 'online_desktop.php'; 
     } 
    }     
    elseif($day == 'Thu' && ($hour >= 6 && $hour < 22)) { 
     if ($detect->isMobile()) 
     { 
     include 'online_mobile.php'; 
     } else 
     { 
     include 'online_desktop.php'; 
     } 
    }      
    elseif($day == 'Fri' && ($hour >= 6 && $hour < 22)) { 
     if ($detect->isMobile()) 
     { 
     include 'online_mobile.php'; 
     } else 
     { 
     include 'online_desktop.php'; 
     } 
    }    
    elseif($day == 'Sat' && ($hour >= 8 && $hour < 18)) { 
     if ($detect->isMobile()) 
     { 
     include 'online_mobile.php'; 
     } else 
     { 
     include 'online_desktop.php'; 
     } 
    }      
    elseif($day == 'Sun' && ($hour >= 8 && $hour < 18)) { 
     if ($detect->isMobile()) 
     { 
     include 'online_mobile.php'; 
     } else 
     { 
     include 'online_desktop.php'; 
     } 
} else { 
    if ($detect->isMobile()) 
    { 
    include 'closed_mobile.php'; 
    } else 
    { 
    include 'closed_desktop.php'; 
    } 
} 
?> 

よろしくR.C.

+0

[簡素化PHPコード](https://stackoverflow.com/questions/6779163/simplifying-php-code) – Jacob

+1

の可能性のある重複した私はそれを言うと思いますスタックオーバーフローではなく、[CodeReview](https://codereview.stackexchange.com/)で議論する必要があります。 – agrm

答えて

0

試してみてください。これは、コードを動作している場合

<?php 
$include = ''; 

    if(in_array($day, array('Mon', 'Tue', 'Wed', 'Thu', 'Fri')) && ($hour >= 6 && $hour < 22)) { 

     $include = $detect->isMobile() ? 'online_mobile' : 'online_desktop'; 
    } 

    if($day == 'Sat' && ($hour >= 8 && $hour < 18)) { 
     $include = $detect->isMobile() ? 'online_mobile' : 'online_desktop'; 
    } 

    if($day == 'Sun' && ($hour >= 8 && $hour < 18)) { 
     $include = $detect->isMobile() ? 'online_mobile' : 'online_desktop'; 
} else { 
    $include = $detect->isMobile() ? 'closed_mobile' : 'closed_desktop'; 
}   

include $include.'php'; 
+0

これは本当に素晴らしいです!私はarayのを学ぶ行く:-)たくさんありがとう!ずっと小さくて清潔です。 –

+0

他の人もそれを知ってくれるように答えをチェックしてください – SuperDJ

+0

私は考えていました:テキストやCSVファイルから日時を読み取って、上記の例で使用できますか? "Mon"、 "7"、 "18"などのテキストファイル "Tue"、 "7"、 "18" "Wed"、 "7"、 "18" "Thu"、 "7"、 "18 「 「金」「7」「18」 「土」「0」「0」 「太陽」「0」「0」土曜日と日曜日は閉じます;-) –

関連する問題