Ankündigung

Einklappen
Keine Ankündigung bisher.

Array automatisch füllen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Denis Jurkovsek
    hat ein Thema erstellt Array automatisch füllen?.

    Array automatisch füllen?

    Hallo,

    ich möchte wissen ob und wenn ja wie man einen Array automatisch füllen kann. Hab schon ein paar Sachen darüber gelesen, aber irgendwie ist das alles nicht so richtig das was ich suche. Im Grunde soll eine For-Each Schleife für jedes Objekt in dem gewähltem Verzeichnis abfragen ob es eine ".html" || ".php"-Datei ist, wenn ja sollen diese in den Array gefüllt werden. Automatisch deshalb, weil es mit der Zeit es viele Dateien geworden sind und jede einzelne im Switch-Case abzufragen ist echt unübersichtlich und auch keine schöne Lösung. Ist für ein Front-Controller und joa, mehr muss ich glaube ich nicht sagen ^^

    MfG
    Denis Jurkovsek

  • jspit
    antwortet
    Denis Jurkovsek : Ein include wird nur ausgeführt wenn $requested_page im Verzeichnis gefunden wird. Mit file_exists() kannst du abfragen ob eine Datei existiert. Damit wird deine "Lösung" dann zum Einzeiler.
    Und ich muss chorn zustimmen, deine "Lösung" ist weit weg von deiner Frage.

    Einen Kommentar schreiben:


  • chorn
    antwortet
    Wozu $dir? Wo ist die Abfrage nach Dateiendung? Warum include? Du hast einfach die Anforderungen geändert.

    Einen Kommentar schreiben:


  • Denis Jurkovsek
    antwortet
    PHP-Code:
    $dir __DIR__;
    $files scandir($dir);

    foreach (
    $files as $file) {
       switch (
    $requested_page) {
          case 
    $file:
             include(
    __DIR__ "/" $file);
             break;
       }

    Hier die Lösung für jeden den es interessiert

    Einen Kommentar schreiben:


  • Alpha
    antwortet
    Zitat von Denis Jurkovsek Beitrag anzeigen
    Hallo,

    ich möchte wissen ob und wenn ja wie man einen Array automatisch füllen kann. Hab schon ein paar Sachen darüber gelesen, aber irgendwie ist das alles nicht so richtig das was ich suche. Im Grunde soll eine For-Each Schleife für jedes Objekt in dem gewähltem Verzeichnis abfragen ob es eine ".html" || ".php"-Datei ist, wenn ja sollen diese in den Array gefüllt werden. Automatisch deshalb, weil es mit der Zeit es viele Dateien geworden sind und jede einzelne im Switch-Case abzufragen ist echt unübersichtlich und auch keine schöne Lösung. Ist für ein Front-Controller und joa, mehr muss ich glaube ich nicht sagen ^^

    MfG
    Denis Jurkovsek
    Ich kenne zwar den Code nicht, aber ich denke mal der Fehler ist nicht die Sammlung von PHP-Dateien, sondern das Fehlen eines Classloders und die fehlende Nutzung von Namesaces.

    Einen Kommentar schreiben:


  • tomBuilder
    antwortet
    Der Frontcontroller liesst doch nur die dateien, welche er braucht, und läd nicht bei jeden page load alle möglich verfügbaren in ein array....


    Im Grunde soll eine For-Each Schleife für jedes Objekt in dem gewähltem Verzeichnis abfragen ob es eine ".html" || ".php"-Datei ist, wenn ja sollen diese in den Array gefüllt werden. Automatisch deshalb, weil es mit der Zeit es viele Dateien geworden sind und jede einzelne im Switch-Case abzufragen ist echt unübersichtlich und auch keine schöne Lösung.
    wieso mischt du html und php in einem verzeichniss ?
    wieso switch case gibt ja nur html und php ?

    etc ..

    Einen Kommentar schreiben:


  • jspit
    antwortet
    Wenn die GLOB_BRACE - Funktionalität verfügbar ist, kannst du mit Wildcards über mehrere Verzeichnisse alle .html und .php Dateien mit einen einzigen glob() Aufruf bekommen.

    Einen Kommentar schreiben:


  • Denis Jurkovsek
    antwortet
    Danke euch beiden, Thema ist geklärt!

    Einen Kommentar schreiben:


  • hausl
    antwortet
    https://php-de.github.io/jumpto/verzeichnis-auslesen/

    Einen Kommentar schreiben:


  • chorn
    antwortet
    Nimm doch glob(), das unterstützt Wildcards. Oder in deiner Schleife halt mit IF und pathinfo() bzw. strpos() und substr() mit in_array() abfragen.

    Einen Kommentar schreiben:

Lädt...
X