Search code examples
arraysdateincludedayofweekdays

php include file based on day of the week - concise code?


I've used answers to some of the previous questions on stack overflow (thanks everyone) to come up with an associative array that includes a particular file based on the day of the week but I was wondering if there is a way of making the code more concise as the path names seem long and repetitive?

$today = date("l");

$content = array (

"Sunday" => "/home/josull05/htdocs/wdd4/php/main-content/sundays-activities-home.php", "Monday" => "/home/josull05/htdocs/wdd4/php/main-content/mondays-activities-home.php", "Tuesday" => "/home/josull05/htdocs/wdd4/php/main-content/thursdays-activities-home.php", "Wednesday" => "/home/josull05/htdocs/wdd4/php/main-content/wednesdays-activities-home.php", "Thursday" => "/home/josull05/htdocs/wdd4/php/main-content/thursdays-activities-home.php", "Friday" => "/home/josull05/htdocs/wdd4/php/main-content/fridays-activities-home.php", "Saturday" => "/home/josull05/htdocs/wdd4/php/main-content/saturdays-activities-home.php"

);   include $content[$today];  


Solution

  • You can try following snippet.

    $today = date( 'l' );
    $file = '/home/josull05/htdocs/wdd4/php/main-content/' . strtolower( $today ) . 's-activities-home.php';
    include( $file );
    

    Variable $today will get day name like Sunday,Monday. In the file name we need day name in small, so strtolower is used.

    Note: It will be safe to check existence of file before inclusion. You can use file_exists.