PHP 日历中有错误
There is an error in a PHP calendar
我有一个非常简单的 PHP 日历脚本,但是当我尝试它时,有一个字符串我没有写。然后出现 "nnnnnnnnnnnnnnnnnn" 但是没有像 echo "nnnnnnnnnnnnnn" 这样的东西所以我不知道是什么错误。
请帮助我。
代码:
<?php
$monthNames = Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Lulglio",
"Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");
if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
$cMonth = $_REQUEST["month"];
$cYear = $_REQUEST["year"];
$prev_year = $cYear;
$next_year = $cYear;
$prev_month = $cMonth-1;
$next_month = $cMonth+1;
if ($prev_month == 0 ) {
$prev_month = 12;
$prev_year = $cYear - 1;
}
if ($next_month == 13 ) {
$next_month = 1;
$next_year = $cYear + 1;
}
?>
<html>
<table width="200">
<tr align="center">
<td bgcolor="#999999" style="color:#FFFFFF">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "? month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Prec. </a></td>
<td width="50%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "? month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Succ. </a> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center"><table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr align="center">
<td colspan="7" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
</tr>
<tr>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>D</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>L</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>M</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>M</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>G</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>V</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>S</strong></td>
</tr>
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
if(($i % 7) == 0 ) echo "<tr>n";
if($i < $startday) echo "<td></td>n";
else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>n";
if(($i % 7) == 6 ) echo "</tr>n";
}
?>
</table>
</td>
</tr>
</table>
</html>
您看到 n
位于:
for ($i=0; $i<($maxday+$startday); $i++) {
if(($i % 7) == 0 ) echo "<tr>n";
if($i < $startday) echo "<td></td>n";
else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>n";
if(($i % 7) == 6 ) echo "</tr>n";
}
要么删除它们,要么您可能打算使用 \n
将其写出 HTML
if(($i % 7) == 0 ) echo "<tr>" . "\n";
或
if(($i % 7) == 0 ) echo "<tr>\n";
其他人也一样,用同样的方法。
将它们连接起来。
我有一个非常简单的 PHP 日历脚本,但是当我尝试它时,有一个字符串我没有写。然后出现 "nnnnnnnnnnnnnnnnnn" 但是没有像 echo "nnnnnnnnnnnnnn" 这样的东西所以我不知道是什么错误。 请帮助我。
代码:
<?php
$monthNames = Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Lulglio",
"Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");
if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
$cMonth = $_REQUEST["month"];
$cYear = $_REQUEST["year"];
$prev_year = $cYear;
$next_year = $cYear;
$prev_month = $cMonth-1;
$next_month = $cMonth+1;
if ($prev_month == 0 ) {
$prev_month = 12;
$prev_year = $cYear - 1;
}
if ($next_month == 13 ) {
$next_month = 1;
$next_year = $cYear + 1;
}
?>
<html>
<table width="200">
<tr align="center">
<td bgcolor="#999999" style="color:#FFFFFF">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "? month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Prec. </a></td>
<td width="50%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "? month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Succ. </a> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center"><table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr align="center">
<td colspan="7" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
</tr>
<tr>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>D</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>L</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>M</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>M</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>G</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>V</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"> <strong>S</strong></td>
</tr>
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
if(($i % 7) == 0 ) echo "<tr>n";
if($i < $startday) echo "<td></td>n";
else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>n";
if(($i % 7) == 6 ) echo "</tr>n";
}
?>
</table>
</td>
</tr>
</table>
</html>
您看到 n
位于:
for ($i=0; $i<($maxday+$startday); $i++) {
if(($i % 7) == 0 ) echo "<tr>n";
if($i < $startday) echo "<td></td>n";
else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>n";
if(($i % 7) == 6 ) echo "</tr>n";
}
要么删除它们,要么您可能打算使用 \n
if(($i % 7) == 0 ) echo "<tr>" . "\n";
或
if(($i % 7) == 0 ) echo "<tr>\n";
其他人也一样,用同样的方法。
将它们连接起来。