Nel copia/incolla devo avere saltato qualche riga, infatti non è chiusa la parentesi graffa del ciclo FOREACH.
Vado a riscrivere cercando di evitare di fare errori.
Codice PHP:
<?php
$pagine = array ('Home' =>'http://www.sanguenellevene.net/index.php',
'Biografia' =>'#',
'Discografia' =>'http://www.sanguenellevene.net/discografia/barabba.php',
'Tour' =>'#',
'forum' =>'http://www.sanguenellevene.net/forum/index.php',
);
// di quante voci è composto il mio menu???
$num = count($pagine);
// inizializzo un contatore
$i = 1;
// inizializzo la variabile stringa $out per evitare NOTICE da
// parte dello script
$out = "";
echo"<ul>";
foreach ($pagine as $text => $link) {
// controllo che il numero del ciclo sia uguale a quello
// che definisce l'ultimo ITEM di lista da inserire
// uso l'operatore ternario in luogo del solito IF
($i == $num) ? $style = " style=\"border-right: 1px solid #666666\" " : $style = "" ;
$out.="\n<li{$style}";
if (basename($_SERVER['PHP_SELF']) == basename($link)) {
$out.="class='active'><a href=\"javascript:void(0)\">$text</a>\n";
} else {
$out.="><a href=\"$link\">$text</a>\n";
}
$i++;
}
echo $out;
echo "[/list]\n";
?>
Ad ogni modo trovo sia inutile stare ad inserire il link della pagina che si sta visualizzando.
Ti consiglio di elaborare una classe apposita per gli elementi di lista che non presentano il link, oppure di usare il javascript.void (nello script qui sopra la scritta javascript è stata modificata per motivi di sicurezza: OCCHIO ALLA SINTASSI).