Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Listaaja

ipe [12.10.2005 16:53:58]

#

Tarkoitus on, että voidaan listata hakemiston kaikki alihakemistot ja niiden sisältämät tiedostot.

esim. http://www.simo-net.org/putka/putka/listaaja

<?php
//mikä hakemisto listataan
	$perus="listataan/";

// functio suorittaa for silmukan joka tulostaa tarvittavan määrän - merkkejä
	function laske($a){

		for($i=0;$i<$a;$i++){

			$sis.=" - ";

		}

		return $sis;

	}


// argumentit: listattava hakemisto: $alku, tiedostojen lukumäärä: $tied ja hakemistojen lukumäärä $hak.
	function listaa($alku, &$tied, &$hak){

		global $perus;
//napataan vielä $perus messiin

		if(!file_exists($alku)) exit("<font color=\"red\">ERROR: hakemistoa <b>$perus</b> ei löydy</font>");
// jos hakemistoa ei löydy, niin ilmoitetaan asiasta.

		foreach(glob("$alku*") as $nimi){
//glob function ja foreach silmukan yhdistelmä käy kaikki hakemiston tiedostot ja alihakemistot läpi ja lukee kunkin vuorollaan $nimi:n.

			$sis=explode("/", str_replace("$perus", "", $nimi));
//sisennystä varten lasketaan / merkkien lukumäärä $nimi:stä, mutta ensin pitää ottaa turha alkuosa pois
			echo laske(count($sis));
//tulostetaan sisennys


			if(is_dir($nimi)){
//jos listattava kohde on hakemisto

				$hak++;

				echo "<a href=\"$nimi\" class=\"hak\">".str_replace("$alku", "", $nimi)."</a><br>";

			}else{

// ja jos ei
				$tied++;

				echo "<a href=\"$nimi\" class=\"fil\">".str_replace("$alku", "", $nimi)."</a> (".(filesize($nimi)/1000)." kt) <br>";

			}


			if(is_dir("$nimi")) listaa($nimi."/", $tied, $hak);
// jos löytyy alihakemistoja, niin homma aletaan alusta.

		}
	}

?>
<html>
	<head>
		<title>Listaaja 1.0</title>
		<style type="text/css" href="styles.css">
			body {
				font-family: Sans; color: #000; font-size: 11px;
				padding: 0px 100px 0px 100px;
			}
			h1 { margin: 0 }
			div.listaus {
				background: #b6e2ed;
				border: 1px solid #5894a3;
				padding: 10px
			}
			div.tulos {
				float: right top;
			}
			a:link.hak { color: red; text-decoration: none }
			a:visited.hak { color: #990000; text-decoration: none }
			a:hover.hak { color: red; text-decoration: none }
			a:active.hak { color: blue; text-decoration: none }

			a:link.fil { color: black; text-decoration: none }
			a:visited.fil { color: gray; text-decoration: none }
			a:hover.fil { color: black; text-decoration: none }
			a:active.fil { color: blue; text-decoration: none }
		</style>
	</head>
	<body>
		<h1>Listaaja 1.0</h1>
<?php
	$tied = $hak = 0;
// alustetaan muuttujat.
	echo "Listataan hakemistoa $perus<br><br><div class=\"listaus\">";
	listaa($perus, $tied, $hak);
	echo "</div>Listattiin yhteensä $tied tiedostoa $hak hakemistosta.";
?>
	</body>
</html>

Tontttu [26.10.2005 19:07:04]

#

Pistäs välilyönnit ennen ja jälkeen osotetta, muuten se lisää kerättyjen osotteiden perään pätkän koodiakin.

ipe [31.10.2005 09:52:37]

#

lainaus:

Pistäs välilyönnit ennen ja jälkeen osotetta, muuten se lisää kerättyjen osotteiden perään pätkän koodiakin.

mihin kohtaan siis? Kun mulla toimii ihan moitteetta..

Teippio [18.10.2006 11:48:07]

#

Hyvin toimii :D

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta