Probleme bei der Sortierung / beim auslesen eines Ordners

Dieses Thema Probleme bei der Sortierung / beim auslesen eines Ordners im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von culan, 12. Apr. 2005.

Thema: Probleme bei der Sortierung / beim auslesen eines Ordners Hallo in dem Verzeichnis liegen PDF dateien die dann einzeln geöffnet werden sollen. Die dateien sind alle mit 1.10...

  1. Hallo
    in dem Verzeichnis liegen PDF dateien die dann einzeln geöffnet werden sollen.
    Die dateien sind alle mit 1.10 oder 2.3 oder .... am anfang gekennzeichnet.
    Sie sollten dann alle schön der reihe nach sortiert werden.
    aber ich habe keinen blassen schimmer wie ich das hinbekommen soll.
    Den mit SORT() habe ich es schon probiert.
    Bitte um kurze denkansetze oder sogar vieleicht gleich die lösung.
    Danke
    Culan
    PS: meine PHP Version 4.3.10
    Code:
    <table border=0 width=90% cellpadding=3 cellspacing=0>
     <tr class=menukopf>
      <th align=left>Katalogseite</th>
      <th align=right>Größe</th>
      <th align=left>Aktualiesiert</th>
    </tr>
    <script language=php>
    
    $verzeichnisname = $unc/katalog/pdf;
    
    $verzeichnis = opendir($verzeichnisname);
    
    while($eintrag = readdir ($verzeichnis))
    { sort ($eintrag);
     $test = $verzeichnisname . / . $eintrag;
     
     if(is_dir($test) or (($eintrag==index.php) or ($eintrag==$gesammt)))
      {
       /* echo <!-- $eintrag -->\n; */
      }
     else
       {
       echo <tr onmouseover=\this.bgColor='#DADADA'\ onmouseout=\this.bgColor='#ffffff'\>\n<td align=\left\ class=\text\ ><img src=\/bilder/links.png\ width=\15\ height=\10\ border=\0\><a href=\/katalog/pdf/$eintrag\ target=\_blank\>$eintrag</a></td>\n;
       echo <td align=\right\ class=\text\> . filesize($test) .  Byte</td>\n;
       echo <td align=\left\ class=\text\> . strftime(%A, %d.%b.%y, %H:%M, filemtime($test)) . </td>\n;
    
       }
    }
    closedir($verzeichnis);
    </script>
    
    </table> 
     
  2. Versuchs mal so:

    Code:
    <table border=0 width=90% cellpadding=3 cellspacing=0>
     <tr class=menukopf>
      <th align=left>Katalogseite</th>
      <th align=right>Größe</th>
      <th align=left>Aktualiesiert</th>
    </tr>
    <?php
    
    $verzeichnisname = $unc/katalog/pdf;
    
    $verzeichnis = opendir($verzeichnisname);
    
    while($eintrag = readdir ($verzeichnis)) {
    	if($eintrag == . || $eintrag == ..) continue;
    	$path = $verzeichnisname . / . $eintrag;
     	$a[name] = $eintrag;
    	$a[size] = filesize($path);
    	$a[time] = strftime(%A, %d.%b.%y, %H:%M, filemtime($path));
    	$arr[] = $a; 
    }
    closedir($verzeichnis);
    
    natcasesort($arr);
    
    for($i = 0; $i < count($arr); $i++) {
       echo <tr onmouseover=\this.bgColor='#DADADA'\ onmouseout=\this.bgColor='#ffffff'\>\n<td align=\left\ class=\text\ ><img src=\/bilder/links.png\ width=\15\ height=\10\ border=\0\><a href=\/katalog/pdf/.$arr[$i][name].\ target=\_blank\>.$arr[$i][name].</a></td>\n;
       echo <td align=\right\ class=\text\> . $arr[$i][size] .  Byte</td>\n;
       echo <td align=\left\ class=\text\> . $arr[$i][time] . </td>\n;
    }
    ?>
    
    </table>
    
    Der Befehl natcasesort:
    siehe => http://de.php.net/manual/de/function.natcasesort.php


    gruss conny
     
  3. Hallo conny,
    ich danke dir ich hatte absolut ein blackout.
    es funktioniert...
    aber anstatt asort mußte ich nur sort nehmen. ;-)
     
  4. Ups, das asort sollte da eh nicht stehen :-[

    Eigentlich sollte dort natcasesort stehen, deshalb hab ich auch den Verweis zum Manual dazugepackt.

    gruss conny
     
  5. Stimmt... ber mit sort funktioniert es auch wunderbar. ;)
     
  6. Jup, das kannste halten wie ein Dachdecker ;) ;D

    Der Unterschied zwischen sort und natcasesort ist eigentlich, dass du bei sort manchmal ein dubioses Sortierergebniss bei Numerischen Werten bekommst. Da du in deinem Eingangsposting geschrieben hast, dass die *.pdf Namen z.B 1.10.pdf, 1.12.pdf usw. sind, währe hier doch das natcasesort die bessere Lösung.

    Teste mal folgendes Bsp.

    Code:
    <?php
    $arr = array(20.1.10.pdf, 1.10.3.pdf, 10.4.14.pdf, 2.4.8.pdf, 3.7.1.pdf, 12.1.5.pdf, , 12.7.6.pdf, 21.7.9.pdf, 17.1.0.pdf);
    sort($arr);
    natcasesort($arr);
    ?>
    
    Ergebnis sort:
    Ergebnis natcasesort:

    Unterschied erkannt ??? ;)


    gruss conny
     
Die Seite wird geladen...

Probleme bei der Sortierung / beim auslesen eines Ordners - Ähnliche Themen

Forum Datum
SEHR DRINGEND: Probleme bei Upgrade auf Windows 7 Windows Vista Forum 13. Nov. 2016
W10M - Glance Screen & DTTWU Probleme Windows 10 Forum 4. Nov. 2016
probleme mit windows 7 update bitte um hilfe. Windows 7 Forum 4. Nov. 2016
Probleme mit .NET Framework 3.5 installation Windows 10 Forum 19. Okt. 2016
Windows 10 Bluetooth Probleme Windows 10 Forum 17. Okt. 2016