Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
28.09.11, 13:25
|
#1
|
Anfänger
Registriert seit: Feb 2009
Beiträge: 1
Bedankt: 0
|
[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_handle, 1000); // 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";
#}
#}
?>
|
|
|
28.09.11, 20:01
|
#2
|
Ist öfter hier
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
|
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)
|
|
|
29.09.11, 00:47
|
#3
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
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
|
|
|
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
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 Uhr.
().
|