Hi, ich habe mir ja lokal einen Apache-Server zum Testen von php-Skripten installiert und darauf eine php-Version meiner Homepage gebastelt. Alles lief gut, aber als ich die Dateien hochgeladen habe, um damit online zu gehen, kam (wenn ich mir die Fehler anzeigen lasse, was man ja online eigentlich lieber lassen sollte...) die Meldung:
Code:
Parse error
: syntax error, unexpected '[' in
/var/www/web1114/html/ruth/include/nav-de.php
on line
2
nav-de ist eine Include-Datei, in die ich mein Menü ausgelagert habe, und sieht folgendermaßen aus:
PHP-Code:
<?php
$pages 
= [
  [
    
'name' => '/deutsch',
    
'linktext' => 'Home',
  ],
  [
    
'name' => '/uebersetz',
    
'linktext' => 'Überset&shy;zen',
  ],
  [
    
'name' => '/dolmetsch',
    
'linktext' => 'Dolmet&shy;schen',
  ],
    [
    
'name' => '/fach',
    
'linktext' => 'Fach- und Spezial&shy;gebiete',
  ],
  [
    
'name' => '/kontakt',
    
'linktext' => 'Kontakte',
  ],

];

$pages2 = [
  [
    
'name' => '/impressum',
    
'linktext' => 'Impres&shy;sum',
  ],
  [
    
'name' => '/AGB',
    
'linktext' => 'AGB',
  ],
    [
    
'name' => '/rueckmeldung',
    
'linktext' => 'Rückmel&shy;dungen',
  ],
];

foreach (
$pages as $index => $page) :
  
$listitem "<li";
  if (
$_SERVER["SCRIPT_NAME"] == $page["name"] . ".php") :
    
$listitem .= " aria-current='page'><a class='same'>";
  else :
    
$listitem .= "><a href='" $page["name"] . ".php'>";
  endif;
  
$listitem .= $page["linktext"] . "</a></li>";
  
$pages[$index]["listitem"] = $listitem;
endforeach; 
foreach (
$pages2 as $index2 => $page2) :
  
$listitem "<li";
  if (
$_SERVER["SCRIPT_NAME"] == $page2["name"] . ".php") :
    
$listitem .= " aria-current='page'><a class='same'>";
  else :
    
$listitem .= "><a href='" $page2["name"] . ".php'>";
  endif;
  
$listitem .= $page2["linktext"] . "</a></li>";
  
$pages2[$index2]["listitem"] = $listitem;
endforeach; 
?>

    <nav>
    <ul id="navi" aria-label="Hauptmenü">
        <?php foreach ($pages as $page) : echo $page["listitem"]; endforeach; ?>
    </ul>
    </nav>
    <nav>
    <ul id="navi2" aria-label="Zusatzmenü">
        <?php foreach ($pages2 as $page2) : echo $page2["listitem"]; endforeach; ?>
    </ul>
    </nav>
Eingebunden wird es in die Hauptdatei so:

HTML-Code:
<!DOCTYPE HTML>

<html lang="de">
<head>	
	<?php include './include/common-head.php';
	?>
	...

</head>
 
<body>
	<?php include './include/header-de.php';
	?>
	<?php include './include/nav-de.php';
	?>

    <main>
	<div class="inhalt">

...
Aber auch wenn ich die Include-Datei alleine laufen lasse, sehe ich zu Hause das Menü (wenn auch ohne Formatierung), online aber den Fehler:
Code:
Parse error: syntax error, unexpected '[' in /var/www/..../include/nav-de.php on line 2
Wie kommt das zustande? Was kann ich machen, damit es funktioniert? Läuft auf dem Server des Anbieters eine andere PHP-Version? Bin Anfängerin im Scripting und habe bisher nur HTML und CSS genutzt. Deshalb mache ich auch keine gefährlichen Sachen wie Kontaktformulare.