我实际上检查了我的代码一百次,但我找不到错误:
我得到的错误: 解析错误:语法错误,第46行/home/tennox/public_html/php/kalender.php中的意外$ end
我尝试做一个计算复活节星期日的函数,在另一个脚本中没有其他所有它只是起作用,但在这个没有。另一种方式是同样的事情!
<?php
$year = isset($_POST['year']) ? intval($_POST['year']) : date('Y');
$months = array("", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$days = array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
$ostern = getOsterSonntag($year);
?>
<form action="kalender.php" method="POST" target="_self">
<input type="text" name="year" value="<?php echo $year; ?>">
</form>
<table border="1" cellspacing="0">
<?php
for($y=0; $y<32; $y++) {
echo "<tr height=\"20\">";
for($x=1; $x<=12; $x++) {
echo "<td width=\"5%\">";
$date = strtotime("$y.$x.$year");
$day = date("d", $date);
$dayname = $days[date("w", $date)];
if ($y == 0) {
echo "<div align=\"center\"><b>$months[$x]</b></div>";
} elseif ($y < date("t",$date) && !($y == 30 && $x == 2)) {
if (date("w", $date) == 6 || date("w", $date) == 0)
echo "<b>";
echo "$day $dayname";
if ($date == $ostern)
echo "(Ostersonntag)";
if (date("w", $date) == 6 || date("w", $date) == 0)
echo "</b>";
} else {
echo " - ";
}
echo "</td>";
}
echo "</tr>";
}
?>
</table>
<?php
function getOsterSonntag($year) {
$a = $year % 19;
$b = $year % 4;
$c = $year % 7;
$k = floor($year / 100);
$p = floor((8*$k + 13) / 25);
$q = ($k / 4);
$d = (19*$a + ((15 + $k - $p - $q) % 30)) % 30;
$e = (2*$b + 4*$c + 6*$d + ((4 + $k - $q) % 7)) % 7;
$ostern = 22 + $d + $e;
if ($ostern > 31){
$ostern -= 31;
return strtotime("$ostern.4.$year");
} else
return strtotime("$ostern.3.$year");
}
?>
答案 0 :(得分:13)
该错误意味着PHP已经完成了对您的代码的分析,但是您忘记在页面的某处关闭符号。您忘记关闭引号,括号,括号或逗号。
希望这有帮助。
答案 1 :(得分:8)
此错误通常意味着您错过了}
。检查所有大括号并确保与{
具有相同数量的}
- 带括号匹配的代码编辑器(例如Notepad ++)可以使这更容易。
答案 2 :(得分:3)
在你的代码的这一部分,我认为你应该为其他人添加{}。
$ostern = 22 + $d + $e;
if ($ostern > 31){
$ostern -= 31;
return strtotime("$ostern.4.$year");
} else
return strtotime("$ostern.3.$year");
同样在这部分中将{}放在这部分中:
if (date("w", $date) == 6 || date("w", $date) == 0) {
echo "<b>";
echo "$day $dayname";
}