Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
17
ZUGRIFFE
931
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    Hallo,

    ich versuch ne ganz simple Funktion zu erstellen ... aber schaffs net ...

    ich möchte, dass in den Ordner ./hallo/
    geschaut wird. in diesem Ordner liegen ein oder mehr Ordner.
    Ich möchte jetzt nicht die ganze Liste aller Ordner anzeigen lassen, sondern nur den Pfad zu dem alphabetisch ersten Ordner in ./hallo/

    hoffe jemand kann mir helfen.

    Vielen Dank im Voraus!
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  2. #2
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.190
    Blog-Einträge
    3
    So etwas (ungetestet!):
    PHP-Code:
    function GetFirstDir($path)
    {
      
    $DirContent scandir($path);
      
      foreach (
    $DirContent as $Item)
      {
        if (
    is_dir($Item))
          return 
    $path."/".$Item;
      }
    }

    $FirstDir GetFirstDir("./hallo/"); 
    scandir() sortiert automatisch den Ordnerinhalt alphabetisch.
    fx001 bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  3. #3
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    Vielen Dank!
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  4. #4
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    Hallo, die Funktion läuft prima, ich habe da noch eine Frage:

    In dem Orner .hallo/
    liegen Ordner die mit "kat1_" "kat2_" und "kat3_" beginnen.
    Kann man die Funktion so umstellen, dass jeweils nur der Pfad der ersten Datei von "kat1_" bzw. "kat2_" bzw. "kat3_" ausgegeben wird?
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  5. #5
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.190
    Blog-Einträge
    3
    Meinst du, dass die Funktion die ersten drei Ordner ausgibt?
    fx001 bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  6. #6
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    Nicht ganz,
    die Ordner im Ordner ./hallo/ heißen z.B. kat1_Testprojekt oder kat3_neuesProjekt. Also es gibt 3 Kategorien.
    Ich will dass die Funktion den alphapetisch ersten Ordnerpfad mit dem Beginn kat1_
    den alphabetisch ersten Ordnerpfad mit dem Beginn kat2_
    den alphabetisch ersten Ordnerpfad mit dem Beginn kat3_
    ausgeben kann.
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  7. #7
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.190
    Blog-Einträge
    3
    Sorry, dass ich dich immer noch nur teilweise verstehe, aber meinst du sowas:
    PHP-Code:
    function GetKatDirs($path)
    {
      
    $DirContent scandir($path);

      
    $FoundItems = array();  

      foreach (
    $DirContent as $Item)
      {
        if (
    strtolower(substr($Item,0,5))=="kat1_" || strtolower(substr($Item,0,5))=="kat2_" || strtolower(substr($Item,0,5))=="kat3_")
        {
           
    $FoundItems[] = $path."/".$Item;
        }
      }
      return 
    $FoundItems;
    }

    $KatDirs GetKatDirs("./hallo/"); 
    Wenn man im Ordner hallo die Ordner (nach alphabetischer Reihenfolge) kat1_..., kat2_... und kat3_... hat, dann werden die ausgegeben.

    Wenn du jetzt die Funktion für andere Ordner umbauen willst, würde ich dir empfehlen ein Array mit den Präfixen der Ordner zu machen:
    PHP-Code:
    $Prefixes = array("kat_1""kat_2""kat_3");
    ...
    if (
    in_array(strtolower(substr($Item,0,5)), $Prefixes)
      
    $FoundItems[] = $path."/".$Item

    PS: Du kannst die Funktion strtolower auch entfernen, ich schrieb sie nur hin, damit es keine Probleme mit der Groß/Kleinschreibung gibt, wenn es z.B. KAt3_ heißt.
    fx001 bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  8. #8
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    ; ) Ach kein Problem, ich glaub eher dass ich mich nicht ganz eindeutig ausgedrückt habe.
    Hintergrund der ganzen Aktion ist, dass es 3 Kategorien auf der späteren HP gibt. Wenn man jetzt z.B. beim surfen auf Kategorie 1 klickt, soll automatisch das erste Projekt mitgeöffnet werden.
    Ich habe drei Kategorien die als Ordner kat1_* kat2_* kat3* in dem Oderner ./hallo/ liegen.
    Aus diesem Grund brauch ich den Pfad zu dem ersten Projekt der einzelnen Kategorien.
    Sprich, wenn man auf Kategorie 1 klickt, soll in ./hallo/ der Pfad zum alphabetisch ersten Projekt der ganzen Projekte angezeigt werden die mit den 5 Buchstaben kat_1* beginnen. Usw.

    Vielen Dank dass Du dir die Mühe machst mich verstehen zu wollen ; )
    Geändert von fx001 (09.09.10 um 11:29 Uhr)
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  9. #9
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.190
    Blog-Einträge
    3
    Achso, jetzt verstehe ich dich (Glaube ich zumindest ).

    Die Funktion von "oben" habe ich kurz so abgewandelt:

    PHP-Code:
    function GetCategoryDirs($path)
    {
      
    $CategoryPrefixes = array("kat1_","kat2_","kat3_");
      
    $DirContent scandir($path);

      
    $FoundItems = array();  

      foreach (
    $DirContent as $Item)
      {
        if (
    in_array(strtolower(substr($Item,0,5)), $CategoryPrefixes)
        {
           
    $FoundItems[] = $path."/".$Item;
        }
      }
      return 
    $FoundItems;
    }

    $CatDirs GetCategoryDirs("./hallo/"); 
    Edit: Weil es öfters zu Fragen bzgl. Ordner/-inhalte und PHP gibt, habe ich jetzt eine PHP-Klasse veröffentlicht: TCachedDirScanner.
    Wenn du willst, kannst du sie auch nutzen!
    Geändert von ComFreek (09.09.10 um 13:50 Uhr)
    fx001 bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  10. #10
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    Hey vielen Dank sehr lehrreich die ZIP mit den Kommentaren!

    Wenn ich die dritte Zeile so abändere, wird mir dann der Pfad für den alphabetisch ersten ordner aller kat1_* Ordner ausgegeben?

    $CategoryPrefixes = array("kat1_");
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  11. #11
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.190
    Blog-Einträge
    3
    Dir werden alle Ordner mit dem Präfix kat1_ ausgegeben (in alphabetischer Reihenfolge).
    Du hast doch folgende Ordnerstruktur, oder?:
    Code :
    1
    2
    3
    4
    5
    
    hallo
    |
    |--kat1_test (Ordner)
    |--kat2_test (Ordner)
    |--kat3_test (Ordner)


    PS: Vielen Dank für den Kommentar zur Klasse. Wenn du willst, kannst du den Kommentar auch beim Blogeintrag posten
    fx001 bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  12. #12
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    Mach ich gerne ; )

    Ahhh Missverständnis gefunden:

    ./hallo/
    kat1_Neubaugebiet
    kat2_Immobilie
    kat1_Altbau
    kat1_Wohnung
    kat3_ein Projekt
    kat3_bla
    kat1_test
    ...

    (Alle liegen in einer Ebene! in dem Ordner ./hallo/)
    so, jetzt klick ich bei mir auf der hp auf den button "kategorie 1" und jetzt soll nicht nur die ordnerliste mit allen projekten mit dem anfang kat1_ angezeigt werden (das klappt wunderbar mit pregmatch), sondern direkt das erste projekt aufgerufen werden. dafür brauch ich aber den jeweiligen Pfad für das erste Projekt kat1_ kat2_ kat3_
    Also wenn ich in Kategorie 1 bin brauch ich den Pfad zum ersten Projekt, wenn ich in Kategorie 2 bin brauch ich den Pfad zum ersten Projekt von kategorie 2 ...
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  13. #13
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.190
    Blog-Einträge
    3
    Ok, so müsste es funktionieren:
    PHP-Code:
    function GetCategoryDirs($path$prefix

      
    $DirContent scandir($path); 

      
    $FoundItems = array();   

      foreach (
    $DirContent as $Item
      { 
        if (
    in_array(strtolower(substr($Item,0,strlen($prefix))), $prefix
        { 
           
    $FoundItems[] = $path."/".$Item
        } 
      } 
      return 
    $FoundItems


    $CatDirs GetCategoryDirs("./hallo/""kat1_");

    ShowCategory ($CatDirs[0]);  // Erste Kategorie anzeigen 
    PS: Was soll eigentlich der Thread-Titel bedeuten? Du hast dich wohl verschrieben
    Geändert von ComFreek (09.09.10 um 16:06 Uhr)
    fx001 bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  14. #14
    Avatar von fx001
    fx001 fx001 ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    153
    Wenn ich das in mein Skript einbaue wird
    Parse error: syntax error, unexpected '{' in "das Skript von Oben" on line 8
    angezeigt.

    Ohne die Funktion läuft mein Skript.
    Ich seh da jetzt bei Deiner Funktion aber keinen Syntaxfehler ? oder Du ?
    Geändert von fx001 (09.09.10 um 19:13 Uhr)
     
    Design Möbel Architektur-Visualisierungen Webdesign RECHTECK

  15. #15
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.190
    Blog-Einträge
    3
    Sorry, ich habe ihn gerade bemerkt.
    Ich hatte eine Klammer bei der IF-Anweisung vergessen. So ist es richtig:
    PHP-Code:
    function GetCategoryDirs($path$prefix

      
    $DirContent scandir($path); 

      
    $FoundItems = array();   

      foreach (
    $DirContent as $Item
      { 
        if (
    in_array(strtolower(substr($Item,0,strlen($prefix))), $prefix
        { 
           
    $FoundItems[] = $path."/".$Item
        } 
      } 
      return 
    $FoundItems


    $CatDirs GetCategoryDirs("./hallo/""kat1_");

    ShowCategory ($CatDirs[0]);  // Erste Kategorie anzeigen 
    fx001 bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 30.01.08, 19:11
  2. Die ersten 20 Wörter ausgeben
    Von noctaru im Forum PHP
    Antworten: 6
    Letzter Beitrag: 03.05.06, 18:59
  3. ersten Infos ausgeben!
    Von Henkeyy im Forum PHP
    Antworten: 1
    Letzter Beitrag: 24.10.04, 15:58
  4. Zur ersten Buchstabe eines Ordners springen
    Von kiphok im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 12.03.04, 12:41
  5. Inhalt eines Ordners vom FTP ausgeben
    Von acid.rain im Forum PHP
    Antworten: 5
    Letzter Beitrag: 16.11.02, 19:01