WinFuture-Forum.de: Dateien Nach Datum Sortieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Dateien Nach Datum Sortieren wie solte ich das Script am besten umschreiben


#1 Mitglied ist offline   ps915 

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

geschrieben 15. Juli 2008 - 14:58

Hallo,
ich bins mal wieder mit einem kleinen Problemchen.

Ich müsste ein Script umbauen, sodass es die Datein die es auslisßt nach dem Erstelldatum bzw "Upload-Datum" sortiert.
Ich habe:
$up=date("H:i:s - d.m.y", filemtime("upload/$file"));
zum Auslesen des "Upload-Datum" genommen, es gibt aber noch viele andere filetime funktionen. Habe ich die richtige gewählt?^^

So und hier der Code, der irgendwie angepasst werden muss:
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, 2, ",", ".")." MB";
	 }
 }
 $handleordner=opendir("upload/");
 echo'<table  cellpadding="0" class="table">
   <tr>
	 <td class="list_top">Name</td>
	 <td class="list_top">Größe</td>
	 <td class="list_top">Hochgeladen</td>
	 <td class="list_top"></td>
   </tr>
 ';
 while (false != ($file = readdir($handleordner))){
 if ($file!= "." && $file!=".." && $file!= "thumb" && $file!= "Thumbs.db"){
 {
 $h = Dateigroesse("upload/".$file);
 $up=date("H:i:s - d.m.y", filemtime("upload/$file"));
 echo '<tr>
	 <td class="list_main">'.$file.'</td>
	 <td class="list_main">'.$h.'</td>
	 <td class="list_main">'.$up.'</td>
	 <td class="list_main"><a href="upload/'.$file.'" target="_blank"><img src="images/control_play.png" border="no"/></a></td>
 </tr>';
 
 }
 }
 }
 closedir($handleordner);


Danke,
Toasterfraktion

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 15. Juli 2008 - 14:59

0

Anzeige



#2 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 517
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 15. Juli 2008 - 15:15

http://ch2.php.net/m...ction.usort.php
http://webxadmin.free.fr/article/php-dir-l...by-date-209.php

Dieser Beitrag wurde von bardelot bearbeitet: 15. Juli 2008 - 15:20

0

#3 Mitglied ist offline   ps915 

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

geschrieben 15. Juli 2008 - 15:30

Zitat


Hab ich mir schon angeschaut, nur wie baue ich dass denn ein?
0

#4 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 517
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 15. Juli 2008 - 15:36

Schau dir mal das Beispiel im zweiten Link an. :blush:

Edit:
<?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, 2, ",", ".")." MB";
  }
}

function DateCmp($a, $b)
{
  if ($a[1] == $b[1]) {
	return 0;
  }
  return ($a[1] < $b[1]) ? -1 : 1;
}

$dir = 'upload/';

$files = array();
$fp = opendir($dir);
  
while (false !== ($file = readdir($fp)))
{
  if ($file == '.' || $file == '..' || $file == 'thumb' || $file == 'Thumbs.db')
   continue;
   
  $files[] = array($file, filemtime($dir.$file), Dateigroesse($dir.$file));
}

closedir($fp);

usort($files, 'DateCmp');

echo '<table  cellpadding="0" class="table">
   <tr>
	 <td class="list_top">Name</td>
	 <td class="list_top">Größe</td>
	 <td class="list_top">Hochgeladen</td>
	 <td class="list_top"></td>
   </tr>';

foreach ($files as $entry) {
  echo '<tr>
	 <td class="list_main">'.$entry[0].'</td>
	 <td class="list_main">'.$entry[2].'</td>
	 <td class="list_main">'.date("H:i:s - d.m.y", $entry[1]).'</td>
	 <td class="list_main"><a href="'.$dir.$entry[0].'" target="_blank"><img src="images/control_play.png" border="no"/></a></td>
  </tr>';
}

echo '</table>';

?>

Dieser Beitrag wurde von bardelot bearbeitet: 15. Juli 2008 - 23:07

0

#5 Mitglied ist offline   ps915 

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

geschrieben 15. Juli 2008 - 19:35

Hm sieht ganz gut aus nur es funktioniert noch nicht ganz:
  $files[] = array($file, filemtime($dir.$file), Dateigroesse($dir.$file));

Da habe ich erstmal ganz hinten noch eine Klammer hintergehängt.

Nur jetzt bringt er da was durcheinander. Er trägt nur komische Sachen in meine Tabelle:
Angehängtes Bild: Unbenannt.JPG

Liegt irgendwie an der array!

Gruß und schonmal danke an bardelot.
0

#6 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 15. Juli 2008 - 19:41

Hast du Einfluß auf den Dateinamen? Den Dateien, die ich erstelle und die dann sortiert werden müssen, knall ich einfach diesen Timestamp in den Namen und sortieren dann einfach nach dem Namen.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#7 Mitglied ist offline   Diewie 

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

geschrieben 15. Juli 2008 - 19:50

Bei der Ausgabe sind die Indizes falsch. So muss es heißen:
foreach ($files as $entry) {
	echo '<tr>
	 <td class="list_main">' . $entry[0] . '</td>
	 <td class="list_main">' . $entry[2] . '</td>
	 <td class="list_main">' . date ('H:i:s - d.m.y', $entry [1]) . '</td>
	 <td class="list_main"><a href="' . $dir . $entry[0] . '" target="_blank"><img src="images/control_play.png" border="no"/></a></td>
  </tr>';
}


Gruß,
Stefan

Dieser Beitrag wurde von Diewie bearbeitet: 15. Juli 2008 - 19:52

0

#8 Mitglied ist offline   ps915 

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

geschrieben 15. Juli 2008 - 20:41

Zitat

Hast du Einfluß auf den Dateinamen? Den Dateien, die ich erstelle und die dann sortiert werden müssen, knall ich einfach diesen Timestamp in den Namen und sortieren dann einfach nach dem Namen.

Das ist eine super Idee, hatte mir überlget dass ich die timestaps ja irgendwie der Datei zuordnen muss, und da hast du recht, das geht im Dateinamen am besten! :-)

@Diewie
Stimmt, da hätt ich auch selber drauf kommen können! :-) Manchmal ist es aber zu simpel! Danke!

@bardelot
Danke nochmal klappt nun alles habe es auch verstanden! Habe nurnoch die Reinhenfolge umgekehrt und gut!

Gruß,
Toasterfraktion
0

#9 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 517
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 15. Juli 2008 - 23:12

Beitrag anzeigenZitat (Toasterfraktion: 15.07.2008, 20:35)

[...]
Da habe ich erstmal ganz hinten noch eine Klammer hintergehängt.
[...]

Beitrag anzeigenZitat (Diewie: 15.07.2008, 20:50)

Bei der Ausgabe sind die Indizes falsch.
[...]


mea culpa! Ich weiss auch nicht was bei den Indizes in mich gefahren ist :)
0

#10 Mitglied ist offline   ps915 

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

geschrieben 16. Juli 2008 - 08:40

Zitat

Ich weiss auch nicht was bei den Indizes in mich gefahren ist

Kann ja mal passieren... :-) Hauptsache am Ende funktioniert alles.

mfg
Toasterfraktion
0

Thema verteilen:


Seite 1 von 1

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