2012-11-15 8 views
7

I rzeczywiście sprawdził mój kod jak sto razy, ale nie mogę znaleźć błędu:

Błąd pojawia się: błąd składni: błąd składni, nieoczekiwany $ end w/home/tennox /public_html/php/kalender.php na linii 46

Próbowałem wykonać funkcję, która oblicza niedzielę wielkanocną, w innym skrypcie bez wszystkich innych po prostu działa, ale w tym nie. Na odwrót to samo!

<?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"); 
} 
?> 
+2

Ran kod lokalnie bez żadnego błędu. – sglessard

+0

Rozwiązałem mój problem - Mój program ftp (netdrive) po prostu skrócił plik z jakiegoś powodu. -.- – TeNNoX

Odpowiedz

8

Ten błąd zwykle oznacza, że ​​przegapiłeś numer }. Sprawdź wszystkie szelki i upewnij się, że masz taki sam numer {, jak } - edytor kodu z dopasowaniem nawiasów (np. Notepad ++) może to znacznie ułatwić.

+0

Sprawdziłem wszystkie nawiasy wiele razy ... Ale ściągnę notatnik ++ i spróbuję tego :) – TeNNoX

11

Błąd ten oznacza, że ​​PHP zakończyło analizowanie kodu, ale zapomniałeś zamknąć symbol gdzieś na swojej stronie. Czy zapomniałeś zamknąć wycenę, nawias, nawias lub przecinek.

Mam nadzieję, że to pomoże.

+0

Sprawdziłem wszystkie nawiasy wiele razy ...:/ – TeNNoX

3

W tej części kodu myślę, że powinieneś dodać {} dla innego.

$ostern = 22 + $d + $e; 
     if ($ostern > 31){ 
      $ostern -= 31; 
      return strtotime("$ostern.4.$year"); 
     } else 
      return strtotime("$ostern.3.$year"); 

również w tej części umieścić {} w tej części tak:

if (date("w", $date) == 6 || date("w", $date) == 0) { 
     echo "<b>"; 
     echo "$day $dayname"; 
} 
+0

Kiedy więc muszę wstawić {}, a kiedy nie? Cóż, dodałem je do każdej instrukcji if, ale nadal jest: "błąd składniowy, nieoczekiwany koniec $ w /home/tennox/public_html/php/kalender.php w linii 49" – TeNNoX

Powiązane problemy