Rolf B: Mit PHP Bild-Daten aus einem Ordner auslesen

Beitrag lesen

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 = []; // $entry als leeres Array vorbereiten

while ($datei = readDir($verzeichnis)) { 
 if ($datei != "." && $datei != "..") { 
   $entry[$datei] = [
      'name' => $datei,
	    'verzeichnis+name' => $verz . $datei,
      'bildabmessungen' => getImageSize($datei),
      'berechnungen' => 'berechnungen'
   ];
  }
}

// SORT_NATURAL würde bsw. img2 vor img10 einsortieren (was normalerweise nicht passiert)
// SORT_FLAG_CASE sortiert case-insensitive - lass das weg wenn du das nicht willst

ksort($entry, SORT_NATURAL | SORT_FLAG_CASE);

// Ausgeben
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
0 70

Mit PHP Bild-Daten aus einem Ordner auslesen

einsiedler
  • javascript
  • php
  1. 0
    MudGuard
    1. 0
      Matthias Apsel
      • php
      1. 0
        Felix Riesterer
        1. 0
          einsiedler
    2. 0
      einsiedler
  2. 0
    dedlfix
    1. 0
      einsiedler
      1. 0
        dedlfix
  3. 1
    Rolf B
  4. 0
    TS
    • php
    • programmiertechnik
    1. 0
      dedlfix
      1. 0
        TS
        1. 0
          dedlfix
          1. 0
            TS
            1. 0
              dedlfix
              1. 0
                TS
                • performance
                • php
                • programmiertechnik
                1. 0
                  dedlfix
                  1. 0
                    Rolf B
                    1. 0
                      TS
                    2. 0
                      Tabellenkalk
                      1. 0
                        Regina Schaukrug
  5. 1
    Robert B.
    • kontextwechsel
    • php
    1. 0
      TS
  6. 0
    einsiedler
    1. 0
      Tabellenkalk
      1. 0
        einsiedler
    2. 0
      einsiedler
  7. 0
    einsiedler
    1. 0
      Rolf B
      1. 0
        einsiedler
        1. 0
          TS
          • php
          • programmiertechnik
          1. 0
            TS
            • korrektur
            • php
            • programmiertechnik
          2. 0
            einsiedler
            1. 0
              TS
              1. 0
                einsiedler
                1. 0
                  TS
                  • php
                  • programmiertechnik
                  • programmiertechnik
                  1. 0
                    einsiedler
                    1. 0
                      TS
                      1. 0
                        einsiedler
                      2. 0

                        Debuggen

                        Regina Schaukrug
                      3. 0
                        TS
                        1. 0
                          einsiedler
                          1. 0
                            TS
                            1. 0
                              einsiedler
                              1. 0
                                TS
                                1. 0
                                  einsiedler
                                  1. 0

                                    Letzter Versuch?

                                    TS
                                    1. 0
                                      einsiedler
                                      1. 0
                                        TS
                                        1. 0
                                          einsiedler
                                          1. 0
                                            einsiedler
                                            1. 0
                                              Tabellenkalk
                                              1. 0
                                                einsiedler
                                                1. 0
                                                  Tabellenkalk
                                                  1. 0
                                                    einsiedler
                                                    1. 0
                                                      Rolf B
                                                    2. 0
                                                      Tabellenkalk
                                    2. 0
                                      einsiedler
                                      1. 0
                                        TS
                                        1. 0
                                          einsiedler
                                          1. 0
                                            TS
                                            1. -1
                                              einsiedler
                                              1. 0
                                                TS
                                                1. 0
                                                  einsiedler
                        2. 0
                          einsiedler
                          1. 3

                            Aufforderung zu mehr Geduld

                            Camping_RIDER
                            • moderation
                            • zu diesem forum
          3. 0
            einsiedler
    2. 1
      TS
      • php
      • programmiertechnik
    3. 0
      Robert B.
      • kontextwechsel
      • php