Ave ChrisB!
$menuOutput = '';
foreach(...) {
$menuOutput .= '[HTML-Code fuer aktuellen Menuepunkt]';
}
Und irgendwo spaeter, wo dein Menue dann in der Seite stehen soll, gibst du dann $menuOutput einfach aus.
Du machst mich noch fertig! Ich hatte gerade geschnallt, das ich foreach 2 mal anwenden kann, das wollte ich vor 20 Minuten bekannt geben. :)
(Wenn das ganze bspw. eine Liste werden soll - dann initialisierst du $menuOutput vor der Schleife mit '<ul id="menue">', haengst dann in der Schleife deine '<li><a>...</a></li>' an, und nach der Schleife noch ein schliessendes '</ul>' - et voila :-))
Ich hab´s zwar hingekriegt, aber ohne initialisieren, ich weiß ja nicht mal was das heißt. :)
Aber es Funzt[TM], und sieht auch viel übersichtlicher aus als mit dem replacen.
<?php
$aktuelle_seite = $_SERVER["REQUEST_URI"];
$navi_links = array("/verz1/dat1", "/verz2/dat2", "/verz3/dat3", "/verz4/dat4");
$ListeBauen = '';
foreach($navi_links as $neue_links) {
if($aktuelle_seite == $neue_links) {
$ListeBauen .= "<li><em>$neue_links</em></li>";
}
else {
$ListeBauen .= "<li><a href=\"$neue_links\">$neue_links</a></li>";
}
}
$menuOutput = '<ul id="ausklapp_navi_2" class="klapp_navi_klasse">'.$ListeBauen.'</ul>';
echo $menuOutput;
?>
Mit $_SERVER["REQUEST_URI"]; solltest du vorsichtig sein, das muss nicht unbedingt das enthalten, auf das du vergleichen willst - wenn die Seite bspw. mit GET-Parametern angefordert wird, dann haengt der Query-String am Seitennamen in $_SERVER["REQUEST_URI"] ebenfalls mit dran. Da muesstest du aus dem Wert also ggf. vorher noch den relevanten Part ausschneiden.
Das muss ich jetzt erstmal verstehen.
Das $_SERVER["REQUEST_URI"] ist ins Spiel gekommen, weil ich mit mod_rewrite die URL umschreibe, dadurch fällt $_SERVER["SCRIPT_NAME"] schon mal weg, gibt es noch eine andere Alternative?
Mir ist nur wichtig, das in der Adressleiste des Browsers das .php weg ist.
Grüße aus H im R an ChrisB,
Primus Enginus*