Det är fortfarande aktuellt! Jag undrar dock hur den går direkt till root av localhost för att hitta filen? index.php ligger ju i samma mapp men den letar på localhost? Nu blir det bara en massa "404 not found"...
Ligger filerna till din meny i en underkatalog i förhållande till localhost, tex "localhost/minsite/index.php", "localhost/minsite/about.php"... så skall man ta hänsyn till det på något sätt: antingen tar man med det i urlbeskrivningen i arrayen enl mitt förslag ovan (#21): '/minsite/index.php'=>'Home', eller så är det med i jämförelsesatsen (se nedan).
Vitsen med att ange en url som börjar med "/" är att den blir då absolut från website-roten. Har du inte det och använder skriptet på en fil i en underkatalog (exvis '/minsite/gallerier/galleri_xx.php'), så kommer url-en att uppfattas som relativa till den aktuella underkatalogen ('gallerier') och antagligen missa de tilltänkta filerna i den överliggande katalogen.
Har du en phpinfo()-sida på din lokala server så kan du få bättre förståelse för vad $_SERVER["SCRIPT_NAME"] är för variabel. Det finns flera i $_SERVER-gruppen som är riktigt användbara. kolla bara att de finns och har samma funktion både på din lokala server och ditt webbhotel.
Jag har en item i menyn som har ett eget id, hur får jag in det?
Tex på samma sätt som med klassen. I exemplet nedan så har jag lagt in en variabel $rot som tar hänsyn till om sajten inte börjar riktigt i webbserverroten (som det ofta händer om man kör med flera projekt under localhost*). Här är det sidan special.php som har ett eget id.
<ul id="menu">
<?php
$rot = '/minsite';
$menu_pages = array(
'/index.php'=>'home',
'/about.php'=>'about us',
'/contact.php'=>'contact us',
'/special.php'=>'special',
'/portfolio.php'=>'portfolio'
);
foreach($menu_pages as $url=>$title){
$abs_url = $rot.$url;
$class = ($abs_url == $_SERVER["SCRIPT_NAME"])? ' class="current"' : '';
$id = ($abs_url == $rot.'/special.php')? ' id="special_id"' : '';
echo '<li'.$class.$id.'><a href="'.$rot.$url.'">'.$title.'</a></li>'."\n";
}
?>
</ul>
*: rekommenderar MAMP Pro där man enkelt kan ge egna domän-adresser till flera olika projekt på den lokala webbservern och därmed slippa den problematiken med sajter som inte ligger i roten.