Ergebnis 1 bis 11 von 11

Thema: [PHP] Dateinamen in ein Array schaufeln

  1. #1

    [PHP] Dateinamen in ein Array schaufeln

    Kann mir jemand mal ein Beispielscript erstellen, welches die Dateinamen aus dem ordner /ordner in ein Array speichert? $array[1], $array[2] usw.

    Und dann ein Code der die Anzahl der Array INhalte angibt, z.B. $array[1], $array[2] $array[3], $array[4] => Script merkt das in $array[] 4 inhalte hinterlegt sind und diese von mir aus als echo ausgibt.

    Dennis

  2. #2
    So einen Code hat man dir jetzt schon drei mal gegeben, aber was solls..
    PHP-Code:
    <?php
      $files 
    = array();
      
    $dir opendir("ordner");
      while(
    $file readdir($dir))
      {
        if(
    $file != "." && $file != ".."$files[] = $file;
      }
      
    $filecount count($files);
    ?>
    Und es ist $files[0]-[3] bei 4 Einträgen und nicht [1]-[4]. Man fängt bei 0 an.

  3. #3
    Zitat Zitat von Dingsi
    So einen Code hat man dir jetzt schon drei mal gegeben, aber was solls..
    PHP-Code:
    <?php
      $files 
    = array();
      
    $dir opendir("ordner");
      while(
    $file readdir($dir))
      {
        if(
    $file != "." && $file != ".."$files[] = $file;
      }
      
    $filecount count($files);
    ?>
    Und es ist $files[0]-[3] bei 4 Einträgen und nicht [1]-[4]. Man fängt bei 0 an.
    jo, stimmt, arrays fangen it 0 an.
    Jetzt hab ich was wichtiges vergessen: ich möchte nur dateien in arrays haben mit der endung: .dateiendung ^^°
    Das war mein Hauptproblem.

    Dennis

  4. #4
    PHP-Code:
    <?php
      $files 
    = array();
      
    $dir opendir("ordner");
      while(
    $file readdir($dir))
      {
        if(
    $file != "." && $file != ".." && eregi ('.dateiendung$'$file)) $files[] = $file;
      }
      
    $filecount count($files);
    ?>
    Oder willst du jetzt für jeden Dateityp einen eigenen Array?

  5. #5
    Zitat Zitat von Tomarus
    PHP-Code:
    <?php
      $files 
    = array();
      
    $dir opendir("ordner");
      while(
    $file readdir($dir))
      {
        if(
    $file != "." && $file != ".." && eregi ('.dateiendung$'$file)) $files[] = $file;
      }
      
    $filecount count($files);
    ?>
    Oder willst du jetzt für jeden Dateityp einen eigenen Array?
    Nein, soll nur die Dateien mit .dateiendung einlesen in die Arrays. Ich werde den Code mal heute Mittag ausprobieren, muss nämlich jetzt in Mathe/Englishc Vorbereitung fürs Gymasium. >__>

    Dennis

  6. #6
    Hab das Skript ein bisschen verändert:
    PHP-Code:
    <?php /* THREAD: http://www.multimediaxis.de/showthread.php?t=57635 */
      
    $language_files = array();
      
    $language_dir opendir("languages");
      while(
    $file readdir($language_dir))
      {
        if(
    $file != "." && $file != ".." && eregi ('.language$'$file)) $language_files[] = $file;
      }
      
    $filecount count($language_files);
    $durchlauf 1;
    while (
    $durchlauf <= $filecount)
    {
     echo 
    ''.$language_files[''.$durchlauf.''].'<br>';
     
    $durchlauf++;
    }
    ?>
    Zerlegt heißt
    PHP-Code:
     if($file != "." && $file != ".." && eregi ('.language$'$file)) $language_files[] = $file
    soviel wie:
    wenn ($file nicht "." und ".." (unsichtbar/ Ordner zurück) ist und findet(sucht .language in $fileordner) werden die dateien in $language_files[] (Array) reingeschaufelt.
    Soweit so gut.

    Warum ist hinter eregi('.language ein "$"?
    Warum wird nach dem if($file != "." && $file != ".." && eregi ('.language$', $file)) kein {inhalt} gesetzt?

    Dennis

  7. #7
    1. Das Dollarzeichen($) steht für das Ende des Strings. Das heisst, das sich ".language" am Ende des Strings befinden muss. Wenn es nicht wäre, würde die RegExp auch auf "xy.languages" oder "a.language.txt" zutreffen.
    2. Nach eine if-Abfrage oder einer anderen Kontrollstruktur(for, while usw.) steh entweder genau ein Befehl oder aber ein Block, der durch geschweifte Klammer gekennzeichnet und im Prinzip genau wie ein Befehl behandelt wird.

  8. #8
    Danke für die Erklärung Manni.

    Möchte jetzt die Dateiendung .languages abschneiden.
    Substr scheint es nicht ganz zu bringen (oder ich hab mich verlesen, kann auch sein).
    Das Skript soll nicht ab dem Punkt (.) abschneiden, sondern nur den Bereich (.languages) oder auch nur die letzten 10 Zeichen (letzten 10 Zeichen sind automatisch: .languages).

    Dennis

  9. #9
    Sollte gehen, ist aber nicht getestet:
    PHP-Code:
    $language_files[] = substr($file, -10); 
    Siehe auch: substr()

  10. #10
    Zitat Zitat von Manni_the_Dark
    Sollte gehen, ist aber nicht getestet:
    PHP-Code:
    $language_files[] = substr($file, -10); 
    Siehe auch: substr()
    Ich kenn den Link.
    Aber das steht ja:
    Beispiel 4: substr("1234567", -2)
    Es wird alles vom "Ende-2" bis zum tatsächlichen Ende des Strings
    zurückgegeben - also 67.

    Dennis
    PS: Werds dann halt trotzdem mal ausprobieren.

  11. #11
    PHP-Code:
     $language_files[] = substr($file0, -10); 
    So sollte es richtig sein...

    PS: BTW, ein besserer Link ist wahrscheinlich dieser...

    Geändert von dead_orc (15.08.2005 um 12:44 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •