WinFuture-Forum.de: Ordner Mit Php Ausgeben / While Oder For - Dateigröße Einbinden? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Ordner Mit Php Ausgeben / While Oder For - Dateigröße Einbinden?


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. April 2008 - 18:31

Hey Leute,
ich habe nun fasst alles Fertig. Ich würde nurnoch gerne etwas hierdran ändern:


        <?php $handleordner=opendir ("$zieldir2");
		while (false != ($file = readdir ($handleordner)))
		{
			if ($file!= "." && $file!="..")
			{
				{
					echo "<a href='$zieldir2$file'>$file</a><br>";
				}
			}
		}
		closedir($handleordner);
	?>




Ich würde gerne noch die Dateigröße der jeweiligen Datei ausgeben.
Wie ich sie ermittel ist kein ding, nur wie setze ich es in der while-Schleife um?

Gruß
Toasterfraktion

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 29. April 2008 - 19:36

0

Anzeige



#2 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. April 2008 - 19:35

Geht das da nicht besser mit einer for-schleife?
0

#3 Mitglied ist offline   h-a-n-n-e-s 

  • Gruppe: aktive Mitglieder
  • Beiträge: 823
  • Beigetreten: 11. August 06
  • Reputation: 1

geschrieben 29. April 2008 - 19:41

Hallo,
hier entnommen.
<?php
function Dateigroesse($URL)
{
	$Groesse = filesize($URL);

	if($Groesse < 1000)
	{
		return number_format($Groesse, 0, ",", ".")." Bytes";
	}
	elseif($Groesse < 1000000)
	{
		return number_format($Groesse/1024, 0, ",", ".")." kB";
	}
	else
	{
		return number_format($Groesse/1048576, 1, ",", ".")." MB";
	}
}
$zieldir = "/xampp/";
$handleordner=opendir($zieldir);
while (false != ($file = readdir ($handleordner)))
{
if ($file!= "." && $file!="..")
{
{
$h = Dateigroesse($zieldir."/".$file);
echo "<a href=$zieldir$file>$file</a>$h<br>\n";
}
}
}
closedir($handleordner);
?>

Dieser Beitrag wurde von h-a-n-n-e-s bearbeitet: 29. April 2008 - 19:42

Eingefügtes Bild
0

#4 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 29. April 2008 - 19:58

Habe kurz deinen Code etwas umgeschrieben. Außerdem wird eine Funktion benutzt, um die Dateigröße lesbar zu machen, d.h. eine passende Einheit wird gewählt.

<?php 

$zieldir = './';

$hordner = opendir($zieldir);

while (false !== ($file = readdir($hordner)))
{
	if ($file != '.' && $file != '..')
	{
		echo '<a href="'.$zieldir.$file.'">'.$file.'</a> - '.format_size(filesize($zieldir.$file)).'<br />';
	}
}
closedir($hordner);

function format_size($size) { // $size in Byte
    $sizes = array('B', 'kB', 'MB', 'GB', 'TB'); //Einheiten-Array
    for ($i=0; $size > 1000 && $i < count($sizes) - 1; $i++) $size /= 1000; //Solange größere Einheit verfügbar und $size > 1000, teile $size durch 1000
    return str_replace('.',',',round($size,2)).' '.$sizes[$i]; //Auf 2 Nachkommastellen runden und . durch , ersetzen. Außerdem Einheit anhängen
}

?>


Zu den Schleifen:
Im Endeffekt kann man jede while-Schleife auch als for-Schleife schreiben, aber in diesem Fall bietet sich die while-Schleife an, da man keine Zählvariable braucht.

Gruß,
Stefan
0

#5 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. April 2008 - 19:59

Auf jedenfall ein Super Script, aber geht das nichtnoch einfacher?
Trotzdem Danke!
0

#6 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 29. April 2008 - 20:04

Beitrag anzeigenZitat (Toasterfraktion: 29.04.2008, 20:59)

Auf jedenfall ein Super Script, aber geht das nichtnoch einfacher?
Trotzdem Danke!


In welcher Hinsicht soll es noch einfacher werden?

Gruß,
Stefan
0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. April 2008 - 20:08

Hm ich dachte da an eine forschleife ohne funktion vorher. Aber ich seh schon, kürzer gehts fasst gar nicht, oder?
0

#8 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 29. April 2008 - 20:17

Beitrag anzeigenZitat (Toasterfraktion: 29.04.2008, 21:08)

Hm ich dachte da an eine forschleife ohne funktion vorher. Aber ich seh schon, kürzer gehts fasst gar nicht, oder?


Also wie gesagt, eine for-Schleife ändert hier gar nichts. Die while-Schleife, so wie sie ist, ist schon in Ordnung. Wenn dich jedoch die Funktion so stört, kannst du es ja so machen :)

<?php 

$zieldir = './';

$hordner = opendir($zieldir);

$sizes = array('B', 'kB', 'MB', 'GB', 'TB'); //Einheiten-Array

while (false !== ($file = readdir($hordner)))
{
	if ($file != '.' && $file != '..')
	{
		$size = filesize($zieldir.$file);
		for ($i=0; $size > 1000 && $i < count($sizes) - 1; $i++) $size /= 1000; //Solange größere Einheit verfügbar und $size > 1000, teile $size durch 1000
		$size = str_replace('.',',',round($size,2)).' '.$sizes[$i]; //Auf 2 Nachkommastellen runden und . durch , ersetzen. Außerdem Einheit anhängen
		
		echo '<a href="'.$zieldir.$file.'">'.$file.'</a> - '.$size.'<br />';
	}
}
closedir($hordner);

?>


Gruß,
Stefan
0

#9 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. April 2008 - 20:21

Hm ich weiß nich waruma ber das gefällt mir besser. Danke Diewie
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0