Asa Medlem sedan dec. 2001 1 860 inlägg Frågan 7 okt. 2008 11:49 #1 Jag vill ha hjälp med denna kod att få den att fortfarande vara öppen när man klickar sig vidare i mapphierarkin. Nu går den bara till första undermapparna och sen går det inte..
<?
function Lista_filer($Kat,$dir) {
$kh=opendir($Kat);
$fil=readdir($kh);
echo "<ul>";
while($fil=readdir($kh)) {
if(!($fil=="."||$fil=="..")) {
if(is_dir($Kat . '/' . $fil)) {
if($dir==""){
echo "<li><a href='index2.php?dir=$fil'><b>$fil</b></a>";
}else{
echo "<li><a href='index2.php?dir=$dir/$fil'><b>$fil</b></a>";
}
if($fil == $dir){
Lista_filer($Kat . '/' . $fil,$dir);
}
echo "</li>";
} else {
echo "<li>$fil</li>";
}
}
}
closedir($kh);
echo "</ul>";
}
$mapp = "photos";
if(isset($_GET['dir'])){
$udir = $_GET['dir'];
}else{
$udir = "";
}
Lista_filer($mapp,$udir);
?>
Ü überfuzz Medlem sedan apr. 2006 409 inlägg Jag tycker att det är vanskligt att skriva ut allt på en gång, som du gör. Har du funderat på att lägga allt i en array i stället? Om du tex får för dig att du vill göra tjusigare länkar kan du ju ändra det senare?
Vidare brukar det vara lättare att söka fel, om man nu får för sig att göra fel...
Asa Medlem sedan dec. 2001 1 860 inlägg Jag har aldrig hållt på med arrayer så jag vet inte hur man gör allt :(
Compusa Medlem sedan jan. 2002 3 327 inlägg Läs på om Arrayer då, inget konstigt alls och det är en fundamental datatyp som du måste veta hur du ska använda :)
Börjar här:
http://www.phpf1.com/tutorial/php-array.html
Sedan kan PHP-referensmanualen om arrayer vara bra när du fått lite kött på benen:
http://se2.php.net/array
Ü überfuzz Medlem sedan apr. 2006 409 inlägg Nu vet jag ju inte exakt vad 'allt' är. Men... stoppa in filsystemet i en array så kan du ju i alla fall leka lite med den arrayen.
function mappLista($mapp, $rekursiv = true)
{
//Så här initierar du en array i php.
$resultat = array();
$hantering = opendir($mapp);
while (false !== ($fil = readdir($hantering)))
{
if ($fil != '.' && $fil != '..')
{
if(is_dir($mapp.DIRECTORY_SEPARATOR.$fil) && $rekursiv === true)
{
$resultat[] = array($fil => mappLista($mapp.DIRECTORY_SEPARATOR.$fil));
}
else
{
$resultat[] = $fil;
}
}
}
closedir($hantering);
return $resultat;
}
Vill du se hur en array ser ut kan du använda:
echo "<pre>";
print_r($array);
echo "</pre>";