zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden [PHP] Verzeichnisstruktur (Dateien) in Array schreiben

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 06.04.2010, 01:06
Software Engineer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.01.2008
Ort: Altleiningen
Beiträge: 305
markuskoehler kann nur auf Besserung hoffen
Ausrufezeichen [PHP] Verzeichnisstruktur (Dateien) in Array schreiben

Hallo Mädels und Jungs.

Ich hänge seit Stunden an einem scheinbar simplen Problem: Ich möchte gerne alle Dateien (aber nicht die Ordner) aller Unterverzeichnisse einer Website per PHP in ein Array schreiben (mit den korrekten relativen Pfaden), so dass ich das Array dann danach weiterverwenden kann.

Also quasi etwas wie:

./file1.txt
./images/img1.jpg
./templates/gray/screen.css
./templates/gray/images/bg.png

usw...

Nachdem ich selbst nicht zu einer programmiererischen Lösung gekommen bin, habe ich per Onkel Google das Internet durchstöbert und die verschiedensten Scripte ausprobiert, aber keines scheint auf meine Bedürfnisse zugeschnitten zu sein. Hat jemand von euch da einen Tipp oder könnte mir schnell ein Script posten?

Vielen lieben Dank im Voraus und mit besten Grüßen,

Markus K.
__________________
MfG Markus Köhler
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 06.04.2010, 07:02
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.024
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Ungetestet einfach nur runtergeschrieben:
PHP-Code:
$files = array();
$path '/path/to/files/';
if (
$handle opendir($path)) {
    while ((
$file readdir($handle) !== false)) {
        if (
is_file($path $file)) {
            
$files[] = $path $file;
        }
    }
    
closedir($handle);

Wenn mich nicht alles täuscht, dann findet man das aber sogar so ähnlich als Beispiel in der Doku.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 06.04.2010, 09:23
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Will er nicht noch die Dateien aus den Unterverzeichnissen ?

Dann rekursiv:

Code:
  LoadAllFiles()
{
  LoadFiles( path);
}

  LoadFiles(
  char *path
  )
{
  if ( opendir( path)){
    if (ist SubDirectoy)
      LoadFiles( path+name);
    else
      speichere name;
    closedir;
  }
}
(so ein Pseudocode )
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #4 (permalink)  
Alt 06.04.2010, 10:26
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 405
chorn wird schon bald berühmt werden
Standard

Zitat:
Zitat von markuskoehler Beitrag anzeigen
aber keines scheint auf meine Bedürfnisse zugeschnitten zu sein.
Ganz allgemein: Die sind ja auch nicht für dein Problem gemacht. Soetwas zu finden gestaltet sich praktisch immer schwierig. Deine Bedürfnisse in Bezug auf "nur Dateien, komplett mit Pfaden" sind auch ziemlich speziell und für die meisten wohl unpraktikabel, da nicht flexibel genug und damit auch kaum weiterverwendbar.

Zitat:
Zitat von markuskoehler Beitrag anzeigen
Nachdem ich selbst nicht zu einer programmiererischen Lösung gekommen bin,
Zeig doch mal her. Woran haperts? Wenn du den Code postet, fällt es Allen leichter dir bei deinem Problem zu helfen und ggf. Fehler zu finden.
Mit Zitat antworten
  #5 (permalink)  
Alt 06.04.2010, 10:30
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.024
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Stimmt Joe, das habe ich übersehen, aber ein bisschen Eigenleistung darf ja auch noch drin sein.
Mit Zitat antworten
  #6 (permalink)  
Alt 06.04.2010, 10:43
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Zitat:
Zitat von inta Beitrag anzeigen
Stimmt Joe, das habe ich übersehen, aber ein bisschen Eigenleistung darf ja auch noch drin sein.
Ok, und Rekursion kann für jemand ohne/mit wenig Routine so richtig hinterhältig sein
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #7 (permalink)  
Alt 06.04.2010, 15:09
Software Engineer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.01.2008
Ort: Altleiningen
Beiträge: 305
markuskoehler kann nur auf Besserung hoffen
Ausrufezeichen

OK, ich merke hier gehts schon heiß her

Also hier mal meine vergeblichen Versuche:

Versuch 1 ("manuelle Rekursion, bis in die 2. Ebene, hätte es aber gerne so tief wie möglich):
PHP-Code:
$dir './';
$directory1 opendir($dir);
while(
$file readdir($directory1)) {
    if(!
is_dir($file)) {
        
$files[] = $dir $file;
    } else if((
$file !== '.') && ($file !== '..')) {
        
$dirs[] = $file;
    };
};
if(!empty(
$dirs)) {
    foreach(
$dirs as $adir) {
        
$adirectory opendir($adir);
        while(
$afile readdir($adirectory)) {
            if(!
is_dir('./'.$adir.'/'.$afile)) {
                
$files[] = './' $adir '/' $afile;
            } else if((
$afile !== '.') && ($afile !== '..')) {
                
$adirs[] = './' $adir '/' $afile;
            };
        };
    }
};
if(!empty(
$adirs)) {
    foreach(
$adirs as $aadir) {
        
$aadirectory opendir($aadir);
        while(
$aafile readdir($aadirectory)) {
            if(!
is_dir('./'.$aadir.'/'.$aafile)) {
                
$files[] = $aadir '/' $aafile;
            };
        };
    }
}; 
Versuch 2 (versuchte automatische Rekursion, ein Lösungsweg in diese Richtung wär mir lieber):
PHP-Code:
// erstmal genauso wie oben
$dir './';
$directory1 opendir($dir);
while(
$file readdir($directory1)) {
    if(!
is_dir($file)) {
        
$files[] = $dir $file;
    } else if((
$file !== '.') && ($file !== '..')) {
        
$dirs[] = $file;
    };
};
// bis hierhin genauso wie oben
while(!empty($dirs)) {
    foreach(
$dirs as $adir) {
        
$adirectory opendir($adir);
        
$dirs = array();
        while(
$afile readdir($adirectory)) {
            if(!
is_dir('./' $adir '/' $afile)) {
                
$files[] = './' $adir '/' $afile;
            } else if((
$afile !== '.') && ($afile !== '..')) {
                
$dirs[] = './' $adir '/' $afile;
            };
        };
    };
}; 
__________________
MfG Markus Köhler
Mit Zitat antworten
  #8 (permalink)  
Alt 06.04.2010, 15:24
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Äm - Markus, kennt PHP keine Unterprogramme ?
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #9 (permalink)  
Alt 06.04.2010, 15:26
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 405
chorn wird schon bald berühmt werden
Standard

Fehlen dir vllt. die Basics in Sachen Rekursion? Ich sehe dazu nämlich keinerlei Ansatz. Zu dem Thema findest du in angemessenem Detailgrad vieles im Netz. Das könnte dich interessieren, solltest du vor Benutzung vernünftig einrücken

Rekursiv Programmieren mit PHP - Tech-Island
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 06.04.2010, 15:47
Software Engineer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.01.2008
Ort: Altleiningen
Beiträge: 305
markuskoehler kann nur auf Besserung hoffen
Ausrufezeichen

Hm... Unterprogramme hören sich nach nem guten Ansatz an. Ich hab mich grad dran gemacht das Script aus chorn's Link bissl zu modifizieren in der Hoffnung dass was brauchbares dabei rauskommt -.-

Problem ist, bis vor kurzem hab ich paar Monate überhaupt nicht programmiert und hatte auch andere Probleme, darum hatte ich jetzt bei meinem "Wiedereinstieg" massivste Logikprobleme und Schwierigkeiten mit den ganzen PHP-Funktionen. Verstärkt wird das ja noch dadurch, dass ich mir alles was ich über Programmierung weiß, autodidakt beigebracht habe... Also muss ich wohl wieder ziemlich am Anfang anfangen. Aber stimmt, kann mich nicht erinnern, schon jemals so ausgiebig mit Rekursion gearbeitet zu haben, wenn überhaupt.^^
__________________
MfG Markus Köhler
Mit Zitat antworten
Sponsored Links
Antwort

Stichwörter
array, php, rekursiv, unterverzeichnis, verzeichnis

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ausgabe geschieht nur einmal Benutzername Serveradministration und serverseitige Scripte 0 12.05.2011 15:59
Navigation aus Array erstellen uspri Serveradministration und serverseitige Scripte 12 16.11.2010 13:32
URL mit XML in (X)HTML ausgeben blockmarc (X)HTML 17 05.06.2010 16:39
[PHP] Daten aus MySQL in Array geben und ausgeben bullseye Serveradministration und serverseitige Scripte 5 23.07.2008 14:48
[PHP] Funktion zum Optimieren von CSS Floele Serveradministration und serverseitige Scripte 2 13.08.2005 10:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:45 Uhr.