myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[PHP] Dateinamen inkl. Dateititel sortieren

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 28.09.11, 13:25   #1
PyroC
Anfänger
 
Registriert seit: Feb 2009
Beiträge: 1
Bedankt: 0
PyroC ist noch neu hier! | 0 Respekt Punkte
Standard [PHP] Dateinamen inkl. Dateititel sortieren

Hallo,
ich komm momentan nicht weiter bei meinem Problem, und zwar soll das S***** mir eine *.php Liste sortieren. So wie das S***** im moment ist werden die Dateien samt Namen zwar ausgegeben, aber eben nicht sortiert. Hab auch schon einiges Probiert aber so richtig funzen will es nicht...
Die letzten überbleibsel der Versuche hab ich momentan rauskommentiert.

Ich hoffe Ihr könnt mir helfen.
Danke

PHP-Code:
<?php
#$sortdatei = array();
#$sorttitel = array();

 // Verzeichnisnamen extrahieren!
 
$dir "testverzeichnis/";

  
// Verzeichnisdateien einlesen
  
$verz_handle openDir($dir);

  while (
$datei readDir($verz_handle)) {
   if (
substr_count($datei".php") > 0) {
   
#$sortdatei[] = $datei;
    
$datei_handle fOpen($dir $datei"r"); // Verzeichnisdatei öffnen
    
$inhalt fRead($datei_handle1000); // Verzeichnisdatei teilw. einlesen
    
fClose($datei_handle);
    
ereg("<title>(.*)<\/title>"$inhalt$titel); // und Titelbeschreibung daraus extrahieren!
    #$sorttitel[] = $titel[1];

        
if ($datei <> "index.php") {
            echo 
"<a href=\"$dir$datei\">$titel[1]</a><br>\n";
        }
   }
  }
  
closeDir($verz_handle);
 
  
#sort($sorttitel);
  #sort($sortdatei);

#foreach($sorttitel as $titel){
    #echo "SORT1: <a href=\"$dir$datei\">$titel</a><br>\n";
        #foreach($sortdatei as $datei){
        #echo "SORT2: <a href=\"$dir$datei\">$titel</a><br>\n";
        #}
#}
?>
PyroC ist offline   Mit Zitat antworten
Ungelesen 28.09.11, 20:01   #2
Epeos
Ist öfter hier
 
Benutzerbild von Epeos
 
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
Epeos ist noch neu hier! | 0 Respekt Punkte
Standard

Jetzt mal ganz blöd gefragt. In der Schleife gibst Du die Name und Titel von der Datei aus, die Du gerade eingelesen hast. Das ist noch nicht alphabetisch sortiert. Außerhalb der Schleife machst Du dann die Sortierung (gerade auskommentiert). Damit sollten dann $sorttitel und $sortdatei sortiert sein. Hast du die sortierten Arrays dann auch noch mal irgendwo ausgegeben, um zu sehen, ob die Sortierung funktioniert?
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
Epeos ist offline   Mit Zitat antworten
Ungelesen 29.09.11, 00:47   #3
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

dein problem ist, daß du deine titel und dateinamen in 2 unterschiedlichen arrays speicherst. wenn du die dann seperat sortierst, passt natürlich titel[N] nicht mehr zu dateiname[N]

also eine möglichkeit:

statt
Code:
$sortdatei[] = $datei; 
$sorttitel[] = $titel[1];
lieber
Code:
if ($titel[1]) {
  $toSort[] = array ('file' => $datei, 'title' => $titel[1]);
}
else {
  die ("can't parse $datei");
}
dann nach der while-schleife
statt 2 sorts ein usort:
Code:
// php >= 5.3
usort ($toSort, function ($a, $b) { return strcmp ($a['title'], $b['title']); } );
foreach ($toSort as $t) {
 ...
}
bzw.
Code:
// php < 5.3
function bla ($a, $b) { 
  return strcmp ($a['title'], $b['title']); 
}
usort ($toSort, 'bla');
foreach ($toSort as $t) {
 ...
}
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 Uhr.


Sitemap

().