Tein tälläisen systeemin valikoksi sivulleni.
<?php $rows = explode("\n", file_get_contents("archives.php")); for($i = 0; $i < sizeof($rows); $i++) { echo "<li><a href=\"?archive_name={$rows[$i]}&archive=block\">" . $rows[$i]; if(isset($_GET["archive_name"]) and $_GET["archive_name"] == $rows[$i]) { echo "<img src=\"plus.gif\">"; } echo "</a></li>\n"; } ?>
Kun painetaan alinta kohtaa, niin nimen perään tulee kuva ihan halutun mukaan. Jos painetaan jotain, muuta niin kuvaa ei tule. Tuossa if-lauseessa on siis jotain vikaa, mutta mitä?
Olet ehkä tallentanut tiedoston Windowsissa, jolloin rivinvaihtona on \r\n eikä \n, jolloin explode jättää \r-merkin rivien loppuun. Viimeisen rivin lopusta ehkä puuttuu rivinvaihto.
Miksi edes luet tiedostoin noin etkä file-funktiolla?
<?php $rows = file("nimi", FILE_IGNORE_NEW_LINES);
Aihe on jo aika vanha, joten et voi enää vastata siihen.