Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] mehrere Strings in Variable

Einklappen

Neue Werbung 2019

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

  • [Erledigt] mehrere Strings in Variable

    Hallo zusammen
    Ich habe eine ganz einfache Frage, auf die ich aber leider keine Antwort finde.
    Ich lese das Inhaltsverzeichnis eines Ordners aus, um ein bestimmtes File zu suchen.
    Nun bekomme ich aber Strings als Ausgabe. Wie wäre dieser String denn geschrieben?
    Ich schreibe zur Kontrolle eine Variable mit einem String:
    PHP-Code:
    $test='test1'.'test2'.'test3'
    Wie würde die manuelle Eingabe beim folgenden aussehen?
    PHP-Code:
    $datei readdir ($handle)) 
    das wäre nicht:
    PHP-Code:
    $datei 'filename1'.'filename2'.'filename3'
    Damit ich mir vorstellen kann, was da mit diesen Files passiert, wäre ich sehr froh, wenn mir jemand sagen könnte, wie der Mehrfachstring sich von Hand schreiben lässt.
    Wenn ich die Variable $datei mit var_dump auslese bekomme ich mehrere Strings (aber trotzdem ist es kein Array..)
    Kann jemand einem blutigen Anfänger helfen? Habe gegoogelt, aber die Frage ist wohl zu einfach, fand nichts.
    Vielen Dank!


  • #2
    Ich verstehe nur Bahnhof.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Jedes mal wenn du readdir() aufrufst bekommst du den nächsten Dateiname, wenn alle durch sind bekommst du false zurück.

      Deswegen steht das auch in einer Schleife...

      PHP-Code:
      while (false !== ($datei readdir($handle))) {
              echo 
      "$datei\n";

      Die Schleife wird so lange ausgeführt wie die Bedingung wahr ist und die Bedingung ist solange war bis false zurück gegeben wird.

      Kommentar


      • #4
        Vielen Dank.
        Wie kann ich nun aber daraus ein einzelnes File finden?
        Ich möchte aus den ganzen Dateien 'text.txt' herausfischen. Wie würde ich das denn zustande bringen?

        und: was ist die Variable $datei eigentlich? Er besteht ja aus mehreren separaten Strings, scheint aber kein Array zu sein.

        Kommentar


        • #5
          Schau dir glob() an
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Zitat von winter Beitrag anzeigen
            Vielen Dank.
            Wie kann ich nun aber daraus ein einzelnes File finden?
            Ich möchte aus den ganzen Dateien 'text.txt' herausfischen. Wie würde ich das denn zustande bringen?
            Was willst du denn da "fischen"? Wenn du den Namen schon kennst, brauchst du ja nicht mehr danach suchen, sondern kannst ihn direkt einer Variablen zuweisen.

            Zitat von winter Beitrag anzeigen
            und: was ist die Variable $datei eigentlich? Er besteht ja aus mehreren separaten Strings, scheint aber kein Array zu sein.
            Du solltest dich vielleicht besser mit Schleifen vertraut machen. $datei ist eine Variable mit einem String, die allerdings bei jedem Durchlauf mit einem neuen String (dem aktuellen Wert) überschrieben wird. $datei hat bei jedem Durchlauf also nur einen Wert, allerdings jedes mal einen anderen.

            Kommentar


            • #7
              Vielen Dank! Genau das habe ich gesucht. Und jetzt checke ich das auch wie das geht mit diesem readdir und den Strings!

              Habe nun in den glob() abgesucht. Gibt es sogar eine Funktion, die nach Teilnamen der Datei sucht?
              Ich suche die Datei test.csv. Von einer externen Seite wird laufend eine neue Datei test1.csv, test2.csv geliefert (leider wird die alte nicht überschrieben, sondern immer eine neue geschrieben?
              Würde sogar die Suche nach test / und dann abbruch mit glob() gehen? Habe ich leider nicht gefunden.

              Kommentar


              • #8
                PHP-Code:
                <?php
                  $files 
                glob("test*.csv");
                  
                natsort($files);
                  
                  
                $file array_pop($files);
                  
                  echo 
                $file;
                ?>
                Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                Kommentar


                • #9
                  Herzlichen Dank!

                  Kommentar


                  • #10
                    Guten Tag zusammen
                    Nun ist neues Problem aufgetaucht:
                    Wenn ich eine Datei downloade, dann beginnt die Beschriftung mit test.csv. Wenn ich sie das nächste Mal downloade heisst sie test-1.csv, das nächste Mal test-2.csv.
                    Nun sortiert natsort aber test-1.csv - test-2.csv - test.csv.
                    Ich möchte aber mit dem code, den mir uha geliefert hat, die neuste Datei finden.

                    PHP-Code:
                    <?php
                      $files 
                    glob("test*.csv");
                      
                    natsort($files);
                        
                    $file array_pop($files);
                        echo 
                    $file;
                    ?>
                    Gibt es eine Sortierung, die so sortiert:
                    test.csv , test-1.csv, test-2.csv?
                    Ich suche nämlich so die neuste Datei und schreibe sie mit rename um. Wenn ich nun test.csv umschreibe, kommt beim nächsten Download wieder eine neue test.csv und dann haben wir komplett die falsche Reihenfolge, darum ist es wichtig, dass von Beginn weg nach der zeitlichen Reihenfolge der Daten sortiert wird.
                    Kennt jemand für das eine Lösung?

                    Kommentar


                    • #11
                      die neuste Datei
                      Das entscheidet sich nicht anhand des Dateinamens.

                      Du wirst nicht drumherum kommen, den Zeitpunkt der Erzeugung jeder Datei festzustellen und danach zu sortieren.
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        Habs nun mit usort geschafft.
                        Sortiere nach Zeile in der -2 oder -3 oder eben ein c erscheint. So sortiert er dann richtig Ist wohl nicht ganz im Sinne des Erfinders, aber es funktioniert.
                        Danke für eure Hilfe!

                        Kommentar

                        Lädt...
                        X