tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
523
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sufijen sufijen ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    236
    Guten Tag zusammen,

    ich hab einProblem mit dem Rekursiven Verzeichnis durchlauf eines scripts. Der Durchlauf an sich und das listen der files ist kein Ding. Das Problem ist, dass ich auch noch die Datei endungen abgleichen will.

    hier ist mein code der aber leider nicht funktioniert, da er immer nur den letzten filetyp im array $types ausgibt (außerdem ist die performance mies):

    EDIT: Habs geschafft aber das ist definitiv nicht die beste lösung das muss auch alles in 2 schleifen gehen statt 6 oder so!

    PHP-Code:
    <?php

    function read_recursiv($path$type)
    {
        
    $result = array();

        
    $handle opendir($path);

        if (
    $handle)
        {
            while (
    false !== ($file readdir($handle)))
            {
                if (
    $file != "." && $file != "..")
                {
                    
    $name $path "/" $file;
                    if (
    is_dir($name))
                    {
                        
    $ar read_recursiv($name$type);
                        foreach (
    $ar as $value)
                        {
                            
    $result[] = $value;
                        }
                    }
                    else
                    {
                        if (
    stripos($file$type))
                        
    $result[] = $name;
                    }
                }
            }
        }
        
    closedir($handle);
        return 
    $result;
    }

    $types=array("gif""jpg""txt");

    foreach (
    $types as $key => $type)
    {
        
    $data[] = read_recursiv("."$type);
    }

    echo 
    "<b>" count($dataCOUNT_RECURSIVE) . " Dateien gefunden</b><br>\n";
    foreach (
    $data as $key => $value)
    {
        foreach (
    $value as $key => $result)
        {
            echo 
    "$result<br>\n";
        }
    }
    ?>
    Geändert von sufijen (18.07.07 um 16:19 Uhr)
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Du könntest die glob()-Funktion nutzen.
     
    Markus Wulftange

  3. #3
    sufijen sufijen ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    236
    hm ich schaus mir mal an aber das Problem ist, dass die dateiendungen in einem array sind

    ich habs auch schon so gemacht:
    PHP-Code:
    [..]
    $exp explode('.',$file);
    if (
    $file != "." && $file != ".." && in_array(end($exp), $types))
    [..] 
    Das funktioniert aber nicht, weil er dann nur das letzte Element des $types arrays nimmt. Das heißt für mich dass da irgendwie noch eine schleife fehlt

    aber danke für die info das ist glaub ich schon ne gute Funktion
     

  4. #4
    sufijen sufijen ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    236
    ok habe es mit einer extrafunktion geschafft die auf die dateiendung testet...

    mit glob war da leider nichts zu machen!

    trotzdem danke gumbo!

    ist erledigt das thema
     

Ähnliche Themen

  1. Problem mit dem rekursiven Einlesen von Verzeichnissen
    Von rpoehlert im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 18.03.10, 22:12
  2. Antworten: 8
    Letzter Beitrag: 12.12.08, 10:52
  3. Antworten: 7
    Letzter Beitrag: 04.12.08, 23:09
  4. MS SQL Server - Definition einer rekursiven Beziehung (m:n)
    Von Tarik_BS im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 27.12.07, 14:10
  5. Antworten: 0
    Letzter Beitrag: 13.11.05, 15:29