Php 将照片插入日历

Php 将照片插入日历,php,image,calendar,Php,Image,Calendar,我正在尝试用php创建一个日历,希望所选月份显示一张图片(例如,一张是一月,另一张是二月,等等)。我想从一个名为“月”的文件夹中提取图片。我该怎么做 这是我的代码: <?php class Calendar { var $events; function Calendar($date) { if(empty($date)) $date = time(); define('NUM_OF_DAYS', date('t',$date));

我正在尝试用php创建一个日历,希望所选月份显示一张图片(例如,一张是一月,另一张是二月,等等)。我想从一个名为“月”的文件夹中提取图片。我该怎么做

这是我的代码:

<?php
class Calendar
{
    var $events;

    function Calendar($date)
    {
        if(empty($date)) $date = time();
        define('NUM_OF_DAYS', date('t',$date));
        define('CURRENT_DAY', date('j',$date));
        define('CURRENT_MONTH_A', date('F',$date));
        define('CURRENT_MONTH_N', date('n',$date));
        define('CURRENT_YEAR', date('Y',$date));
        define('START_DAY', (int) date('N', mktime(0,0,0,CURRENT_MONTH_N,1, CURRENT_YEAR)) - 1);
        define('COLUMNS', 7);
        define('PREV_MONTH', $this->prev_month());
        define('NEXT_MONTH', $this->next_month());
        $this->events = array();
    }

    function prev_month()
    {
        return mktime(0,0,0,
                (CURRENT_MONTH_N == 1 ? 12 : CURRENT_MONTH_N - 1),
                (checkdate((CURRENT_MONTH_N == 1 ? 12 : CURRENT_MONTH_N - 1), CURRENT_DAY, (CURRENT_MONTH_N == 1 ? CURRENT_YEAR - 1 : CURRENT_YEAR)) ? CURRENT_DAY : 1),
                (CURRENT_MONTH_N == 1 ? CURRENT_YEAR - 1 : CURRENT_YEAR));
    }

    function next_month()
    {
        return mktime(0,0,0,
                (CURRENT_MONTH_N == 12 ? 1 : CURRENT_MONTH_N + 1),
                (checkdate((CURRENT_MONTH_N == 12 ? 1 : CURRENT_MONTH_N + 1) , CURRENT_DAY ,(CURRENT_MONTH_N == 12 ? CURRENT_YEAR + 1 : CURRENT_YEAR)) ? CURRENT_DAY : 1),
                (CURRENT_MONTH_N == 12 ? CURRENT_YEAR + 1 : CURRENT_YEAR));
    }

    function getEvent($timestamp)
    {
        $event = NULL;
        if(array_key_exists($timestamp, $this->events))
            $event = $this->events[$timestamp];
        return $event;
    }

    function addEvent($event, $day = CURRENT_DAY, $month = CURRENT_MONTH_N, $year = CURRENT_YEAR)
    {
        $timestamp = mktime(0, 0, 0, $month, $day, $year);
        if(array_key_exists($timestamp, $this->events))
            array_push($this->events[$timestamp], $event);
        else
            $this->events[$timestamp] = array($event);
    }

    function makeEvents()
    {
        if($events = $this->getEvent(mktime(0, 0, 0, CURRENT_MONTH_N, CURRENT_DAY, CURRENT_YEAR)))
            foreach($events as $event) echo $event.'<br />';
    }



    function makeCalendar()
    {
        echo '<table border="1" cellspacing="4"><tr>';
                echo '<td colspan="7" style="text-align:center"> <img src= \"img/months/$month.jpg\" > </td>';
                echo '</tr><tr>';
        echo '<td width="30"><a href="?date='.PREV_MONTH.'">&lt;&lt;</a></td>';
        echo '<td colspan="5" style="text-align:center">'.CURRENT_MONTH_A .' - '. CURRENT_YEAR.'</td>';
        echo '<td width="30"><a href="?date='.NEXT_MONTH.'">&gt;&gt;</a></td>';
        echo '</tr><tr>';
        echo '<td width="30">Mon</td>';
        echo '<td width="30">Tue</td>';
        echo '<td width="30">Wed</td>';
        echo '<td width="30">Thu</td>';
        echo '<td width="30">Fri</td>';
        echo '<td width="30">Sat</td>';
        echo '<td width="30">Sun</td>';
        echo '</tr><tr>';

        echo str_repeat('<td>&nbsp;</td>', START_DAY);

        $rows = 1;

        for($i = 1; $i <= NUM_OF_DAYS; $i++)
        {
            if($i == CURRENT_DAY)
                echo '<td style="background-color: #C0C0C0"><strong>'.$i.'</strong></td>';
            else if($event = $this->getEvent(mktime(0, 0, 0, CURRENT_MONTH_N, $i, CURRENT_YEAR)))
                echo '<td style="background-color: #99CCFF"><a href="?date='.mktime(0,0,0,CURRENT_MONTH_N,$i,CURRENT_YEAR).'">'.$i.'</a></td>';
            else
                echo '<td>'.$i.'</td>';

            if((($i + START_DAY) % COLUMNS) == 0 && $i != NUM_OF_DAYS)
            {
                echo '</tr><tr>';
                $rows++;
            }
        }
        echo str_repeat('<td>&nbsp;</td>', (COLUMNS * $rows) - (NUM_OF_DAYS + START_DAY)).'</tr></table>';
    }
}


$epcMonthPic = date("m", mktime(0,0,0,$mo)); //change the "F" for "m" if you want to use numbers
$epcImagePath = "/img/"; // the path to your monthly images (keep the trailing slash)
$epcImageExt = "jpg"; // the extension you'll be using for your images
echo "<img src=\"$epcImagePath$epcMonthPic.$epcImageExt\">";  

$month = $_REQUEST["month"]; 

$cal = new Calendar($_GET['date']);

$cal->makeCalendar();



?>

方法中的
makeCalendar()
fix行:

echo '<td colspan="7" style="text-align:center"> <img src= \"img/months/$month.jpg\" > </td>';
echo '<td colspan="7" style="text-align:center"> <img src="img/months/' . CURRENT_MONTH_N . '.jpg" > </td>';
img/months/1.jpg
img/months/2.jpg
...
img/months/12.jpg