Ankündigung

Einklappen
Keine Ankündigung bisher.

Dateien einlesen

Einklappen

Neue Werbung 2019

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

  • Dateien einlesen

    Hallo,
    Ich wollte mal fragen, wie man folgendes hinkriegt:
    1. Der Dateiname, aller Dateien im Verzeichnis "dats", die die Endung ".php" haben, sollen in das Array "$dats" geschrieben werden.
    2. Der Index soll der Dateiname ohne Punkt und Endung sein (in ' ' geschrieben) und der Wert der Dateiname mit Punkt und Endung.
    3. Dann soll geprüft werden, ob die $_GET variable $_GET[name der Dtaei ohen Endung] existiert und wenn ja soll Name der Datei mit Punkt und Endung includet werden. Wenn keine Datei mit dem in der GET Variable angegebenen Namen existiert, soll die FUnktion false zurückgeben.

    Ich hoffe, dass das Problem verständlich erklärt wurde und, dass das nicht zu viel verlangt ist.

    Gruss,
    silver_surfer


  • #2
    Ich formuliere maine Frage mal um:
    Im ordner "dats" befinden sich mehrere Dateien mit der Endung ".php".
    Die Namen der Dateien sollen nun in das Array $dats nach folgendem Muster eingelesen werden:
    Datei blabla.php
    $dats['blabla'] = 'blabla.php';
    Datei bliblu.php
    $dats['bliblu'] = 'bliblu.php';
    und so weiter bis alle Dateien im Array sind.

    Dann wird über die URL eine Get variable übergeben. Bsp: Domain.de - Das Portal rund um Domains
    Nun soll, wenn vorhanden, die Datei blabla.php includet werden. Wenn diese Datei nicht vorhanden ist, soll die Funktion den Wert false zurück geben.

    Gruss,
    siolver_surfer

    Kommentar


    • #3
      Einfach mal bei Google nach Verzeichnis einlesen mit PHP suchen.

      Da findest genügend.

      Kommentar


      • #4
        hab ich gesucht aber nnix gefunden. NUr so sachen mit verzeichnisse sucerhn. Ich will aber die Dateinamen.

        Kommentar


        • #5
          Erster Link bei Google bei "php verzeichnis einlesen":

          Webmaster Blog | PHP: Verzeichnis in Array einlesen


          In PHP5 gibt es die Funktion scandir, um den Inhalt eines Verzeichnisses in ein Array einzulesen. Was aber, wenn der Server nur PHP4 beherrscht? Ich hatte mir zunächst mit opendir und readdir eine eigene Funktion zu diesem Zweck gebaut. Mehr zufällig bin ich dann über die Funktion glob gestolpert, die ab PHP Version 4.3.0 ein komplettes Verzeichnis in einem Rutsch in ein sortiertes Array einliest, dabei auch noch ein Filtern der Dateinamen zulässt und erfreulich performant arbeitet. Aber wer hat sich diesen beknackten Namen ausgedacht, bei dem man garantiert nicht auf die Aufgabe dieser Funktion kommt? Die Tatsache, dass glob in der PHP Dokumentation nicht unter Directory Functions, sondern unter Filesystem Functions aufgeführt ist, macht das Entdecken dieses scheinbar sehr nützlichen Befehls auch nicht gerade leichter.
          Da werden ein paar Funktionen genannt, die dir weiterhelfen und mit deren Hilfe du dein Script selber schreiben kannst.

          Kommentar


          • #6
            ok, danke.
            werde mal gucken was ich machen kann...

            Kommentar


            • #7
              Mein Array funzt jetzt wie es soll, aber ich komme nicht weiter.
              Bishreiger Code:
              PHP-Code:
              $dir "./dats";
              $dh  opendir($dir);
              while (
              false !== ($filename readdir($dh))) {
                  
              $files[substr($filename0, -4)] = $filename;

              Wie kann ich es jetzt realisieren, dass nur der Name der ersten GET varaible in der variable $filesindex gespeichert wird.
              BSP:

              http.//www.blabla.de/index.php?forum&kundennummer=936934796&action=show

              In der Variable $filesindex soll nun stehen "forum".

              //idee:
              villeicht irgendwie so print_r(array_slice($_GET, 0, 1));?????

              Bitte hilfe!!

              Kommentar


              • #8
                Du must schon eine GET-Variable definieren und dieser einen Wert zuweisen:

                http.//www.blabla.de/index.php?filesindex=forum&kundennummer=936934796&action=show

                und dann kannst im Script mit
                PHP-Code:
                $filesindex $_GET['filesindex']; 
                drauf zugreifen.

                Du hast bisher nur irgendwas übergeben, dass du nicht auswerten kannst da du dem Wert keine gleichbleibenden Variablennamen gegeben hast.

                Gruß
                Markus

                PS: Schau mal nach einen PHP Tutorial und arbeite dich ein wenig in die Grundlagen ein.

                Kommentar


                • #9
                  $dats = glob("dats/*.php");

                  PHP: glob - Manual
                  "Mein Name ist Lohse, ich kaufe hier ein."

                  Kommentar


                  • #10
                    @freehawk das Problem ist, dass die Leute nicht so schlau sind und sich ?filesindex=forum merken könne. deshalb soll es nur über die definitzion der Variabvle laufen.

                    @Chriz Das Proböem ist, wen ich angebe ?forum&kundennummer=4368584569823 will er die Datei mit dem namen der kunden nummer un der Bezeichnung öffnenm.

                    Nachdem ich gestern ei b isschen nachgedacht habe, fiel mir auf, das $_GET eich Array ist. Das heisst ich kann mit der Funktion reset( $_GET); Den ZEiger auf das Erste Element setzen (deaufult ist schon der Erste, nur zur sicherheit) und mir mit key($_GET); mir den aktuellen key bzw index angeben lassen.

                    Hier der Code
                    PHP-Code:
                    <?php
                    function inhalt() {
                    $dir "./dats";
                    $dh  opendir($dir);
                    while (
                    false !== ($filename readdir($dh))) {
                        
                    $files[substr($filename0, -4)] = $filename;
                    }
                    reset($_GET);
                    $fileindex key($_GET);
                    if(isset(
                    $files[$fileindex])) {
                    include (
                    "./dats/".$files[$fileindex]);
                    } else {
                    echo 
                    "Das von ihnen angeforderte Dokument existiert nicht oder wurde aus unserem Dienst entfernt!";
                    return 
                    false;
                    }
                    }
                    inhalt();
                    ?>
                    Die Methode mit dem Get ist villeicht nicht Gemäß der Vorstellung von PHP und/oder nicht syntaktisc richtig, aber es funktioniert! Und man kann ohne weiteres andere Variblen in der url definieren.

                    Gruss,
                    silver_surfer

                    Kommentar


                    • #11
                      Ist syntaktisch richtig. ABER: Die Anwendung sollte besser unabhängig von der Reihenfolge der Parameter funktionieren.

                      Vorschlag: Benutze mod_rewrite, um eine imaginäre URL der Art

                      http.//www.blabla.de/forum/index.php?kundennummer=936934796&action=show
                      oder
                      http.//www.blabla.de/forum.php?kundennummer=936934796&action=show

                      intern in in

                      http.//www.blabla.de/index.php?page=forum&kundennummer=936934796&action=show
                      umzuschreiben
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        Das ist aber eben genau der Sinn des ganzen.
                        Es soll einfach nur ?forum eingegeben werden.
                        Iste infacher. Und ausserdem; hab ich noch keinen Userr gesehen, der kunbdennummer=blablabla eingibt von daher...
                        Ausserdem wird eigentlich nur ?angeforderteSeite eingegeben. Von daher ist dass schon ganz gut so.
                        Die Methode mit den ?page=forum hatte ich früher und fand sie doof. Deshalb hb ich es ersetzt.

                        Gruss,
                        silver_surfer

                        Kommentar


                        • #13
                          Du hast mein Posting nicht ordentlich gelesen.

                          Du sollst die obige Syntax dem Surfer anbieten.
                          Meinethalben dann auch:

                          http.//www.blabla.de/forum/
                          bzw.
                          http.//www.blabla.de/forum.php
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar


                          • #14
                            Das hab ich ja zu aller erst gehabt aber mein Kunde wollte es so haben.

                            Kommentar


                            • #15
                              Ich verstehe zwar nicht, was an

                              http.//www.blabla.de/index.php?forum

                              besser als an

                              http.//www.blabla.de/forum/

                              ist. Aber naja, wenn Du eh keine Handhabe hast, dann ist der Thread wohl erledigt.
                              --

                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                              --

                              Kommentar

                              Lädt...
                              X