webForumDet fria alternativet

Sortera + is_dir + is_file

4 svar · 399 visningar · startad av NeoBlizz

NeoBlizzMedlem sedan jan. 200351 inlägg
#1

Har en kodsnutt som kollar en mapp och listar filerna i den..

Nu vill jag lista dem i bokstavsordning när de skrivs ut.

		if(is_dir("/usr/home/apache/htdocs/archive/".$thedir)) {
			$session_dir = dir("/usr/home/apache/htdocs/archive/".$thedir);
			$all = 0;
			while($entry = $session_dir->read()) {
				//echo "Dirlist";
				if($entry != "." && $entry != "..") {
					//make a proper filename to use
					$filename = "/usr/home/apache/htdocs/archive/".$thedir."/".$entry;   
					$file_time = date("Y-m-d H:s",filemtime($filename));
					//do filesize
					$file_size = filesize($filename);
					if($file_size > 1024 && $file_size < 1048576) {
						$file_size = $file_size / 1024;
						$file_size = round($file_size,2) ."Kb";	
					}
					else if($file_size > 1048567) {
						$file_size = $file_size / 1048576;
						$file_size = round($file_size,2) ."Mb";	
					}
					if(is_file($filename)) {
						//print href to file.
					echo "<a href='/archive/".$thedir."/".$entry."'class='grey'>".$entry."</a> <font color='GOLD'>Size: ".$file_size."</font><br>";
					}
//		                	$all++;
					//$this->wholePage[] = "<tr><td colspan=3>&nbsp;</td></tr>";
				}
			}
			$session_dir->close();
		}

Hur, vad ska jag lägga til för att de ska skrivas ut i bokstavsordning?

MatteMedlem sedan aug. 20002 975 inlägg
#2

Samla dina värden i en array, istället för att skriva ut.
Sortera arrayen.
Loopa ut arrayen.

NeoBlizzMedlem sedan jan. 200351 inlägg
#3

Ungefär det svar jag förväntade mig. hehe.

Synd bara att jag inte har en aning om vad all kod gör (inte jag själv som skrivit den)

Får titta på det.. array->sortera->loopa ut...

MatteMedlem sedan aug. 20002 975 inlägg
#4

Först någonstans innan filhämtning initierar du en tom array, t.ex.

$files = array();

Sedan i din listning ändrar du från att skriva ut

echo "<a href='/archive/".$thedir."/ ...

till att samla i array

$files[] = "<a href='/archive/".$thedir."/ ...

Sedan efter loopen skriver du ut:

sort($files); // Sorterar

// Skriver ut
foreach($files as $file) {
   echo $file;
}
NeoBlizzMedlem sedan jan. 200351 inlägg
#5

Danke...

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)