login  Naam:   Wachtwoord: 
Registreer je!
 Forum

read dir (Opgelost)

Offline faithmike - 18/08/2007 16:43
Avatar van faithmikeNieuw lid Hoi,

Ik heb een flash site die thumbnails genereerd door middel van een read dir. Deze geeft een string door en flash doet de rest. Alles komt nu zonder voor mij enige logische ordening door in flash.

Nu is mijn vraag:

Is het mogelijk met readdir te sorteren op create date?
(de dir bestaat alleen uit jpg's)

Groeten michael.

9 antwoorden

Gesponsorde links
Offline Stijn - 18/08/2007 20:40
Avatar van Stijn PHP expert PHP.net: stat geeft een array terug met de file informatie. Key 8,9 en vooral 10 zijn interessant voor jou probleem.
Offline Wim - 19/08/2007 00:57
Avatar van Wim Crew algemeen of eventueel steek je alles in een array, en je gooit het door een PHP.net: asort(). Het nadeel is wel dat het van z naar a sorteert...
Offline faithmike - 19/08/2007 20:03
Avatar van faithmike Nieuw lid dankjewel voor de reacties ik ga het meteen proberen 
had nog nooit gehoort van deze commands. thx

(beginnen phper -.-)
Offline Wim - 19/08/2007 20:26
Avatar van Wim Crew algemeen beetje gokken op functienamen als je het echt niet weet, of gewoon op php.net zoeken.

functies die met files te maken hebben beginnen meestal met f (fopen, fclose, fread, ...). array functies meestal met array_ (array_sort() bestaat dacht ik zelfs ook) en soms met a (asort dan he).
Offline Rik - 19/08/2007 20:47 (laatste wijziging 19/08/2007 20:48)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
wimmarien schreef:
of eventueel steek je alles in een array, en je gooit het door een PHP.net: asort(). Het nadeel is wel dat het van z naar a sorteert...

Gebruik dan gewoon PHP.net: http:/...arsort.php... 
Offline faithmike - 19/08/2007 20:48 (laatste wijziging 19/08/2007 20:49)
Avatar van faithmike Nieuw lid ik heb wat zitten zoeken en heb het idee dat het mogelijk is met
1) filemtime()
2) ksort()

Nu loop ik alleen tegen het volgende probleem aan hoe kan ik met push een key invullen + waarde 

Hier is de code dan is het misschien duidelijker.

  1. $dir = $_POST['dir'];
  2. $file_array = array();
  3.  
  4. $filesfound = opendir($dir);
  5.  
  6. while ($file = readdir($filesfound)) {
  7. if ($file != "." && $file != "..") {
  8.  
  9. (dit is zegmaar het idee, maar met push niet mogelijk, en op deze manier add hij het niet aan het einde van de array maar elke keer het begin.)
  10. $file_array = array(filemtime($dir . "/" . $file) => $file);
  11.  
  12. }
  13. }
  14. ksort($file_array);
  15. closedir($filesfound);
  16.  
  17. echo("&thumbsFound=");
  18. while (list($key, $val) = each ($file_array)) {
  19. echo $val ."$";
  20. }
Offline Rik - 20/08/2007 10:35
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als je van "$file_array" "$file_array[]" maakt hoort het te werken zoals je wilt.
Offline ikkedikke - 20/08/2007 10:37
Avatar van ikkedikke PHP expert verander
$file_array = array(filemtime($dir . "/" . $file) => $file);
in
$file_array[filemtime($dir . "/" . $file)] = $file;
er van uit gaande dat er geen foto's in dezelfde seconde gemaakt zijn.
Offline faithmike - 20/08/2007 11:03
Avatar van faithmike Nieuw lid dankje voor je comment. Helaas werkt dit niet. De output is dan array.

Maar dankzei je comment heb je me wel op het goede spoor gezet 
Ik heb het als volgt opgelost:

  1. $dir = $_POST['dir'];
  2. $file_array = array();
  3.  
  4. $filesfound = opendir($dir);
  5.  
  6. while ($file = readdir($filesfound)) {
  7. if ($file != "." && $file != ".." && $file != "Thumbs.db") {
  8. $stat = filemtime($dir . "/" . $file);
  9. while(array_key_exists($stat,$file_array)){
  10. $stat = $stat + 1;
  11. }
  12. $file_array[$stat] = $file;
  13. }
  14. }
  15. ksort($file_array);
  16. closedir($filesfound);
  17.  
  18. echo("&thumbsFound=");
  19. while (list($key, $val) = each ($file_array)) {
  20. echo $val ."$";
  21. }


Nogmaals bedankt voor alle hulp.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.228s