Hallo einsiedler,
bezahlt wird hier nicht, aber Selfhtml hat ein Spendenkonto, falls Du Überdruck im Geldbeutel hast.
Du hast meinen Vorschlag mit dem $entry etwas anders umgesetzt, das macht aber nichts :)
Einen Teil deiner Fragen verstehe ich nicht, weil das, was ich auf welten-bau.de angezeigt bekomme, nicht zu deinen Fehlerbeschreibungen passt. Ich sehe auch nicht, dass dein Script eine Liste erzeugt, aber welten-bae.de liefert eine. Offenbar ist das Script mittlerweile weiterentwickelt worden und Du hast die Probleme teilweise schon gelöst.
Also erstmal nur die „einfachen“ Fehler:
echo '$Verzeichnis + $NAME ' . $entry[$i] ['verzeichnis+name']
zeigt deshalb nichts an, weil du bei dem Befüllen dieses Eintrags in $entry[i] die array_merge Funktion verwendest. array_merge erwartet aber zwei Arrays als Eingabe und hängt sie zusammen. DU willst zwei Strings zusammenketten - und dafür reicht $verz . $datei
vollkommen aus. Lass den array_merge-Aufruf darum herum einfach weg.
echo 'BILDabmessungen ' . $entry[$i] ['bildabmessungen'[0]] . "\n";
zeigt nichts an, weil Du die Array-Zugriffe falsch schachtelst. Was Du geschrieben hast, ist (in der Reihenfolge wie PHP es durchführt)
- nimm die Zeichenkette 'bildabmessungen'
- hol die das erste Zeichen davon - also 'b'
- verwende das als Zugriffsschlüssel für $entry[i] - das findet nichts.
Richtig ist: $entry[$i] ['bildabmessungen'] [0] . "\n";
Sortierung nach Name
Hierfür musst Du den Einlesevorgang von der Ausgabe trennen. D.h. du brauchst zwei Schleifen, die nacheinander laufen. Dazwischen sortierst Du das Array.
Zum Sortieren bietet es sich an, das $entry-Array NICHT numerisch zu indizieren, sondern den Dateinamen als Index zu verwenden (also ein assoziatives Array). Die ksort-Funktion macht das Sortieren dann leicht (andernfalls müsstest Du mit usort und einem Sort-Callback herumbasteln).
$entry = [];
while ($datei = readDir($verzeichnis)) {
if ($datei != "." && $datei != "..") {
$entry[$datei] = [
'name' => $datei,
'verzeichnis+name' => $verz . $datei,
'bildabmessungen' => getImageSize($datei),
'berechnungen' => 'berechnungen'
];
}
}
ksort($entry, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($entry as $datei => $eintrag) {
echo "<a href=\"img/$datei\"> $datei</a><br>\n";
echo "Vollst. Name: {$eintrag['verzeichnis+name']}\n";
echo "Bildabmessungen: {$eintrag['bildabmessungen'][0]}\n";
}
Rolf
--
sumpsi - posui - clusi