Ankündigung

Einklappen
Keine Ankündigung bisher.

Php loop (foreach) sowie glob $file

Einklappen

Neue Werbung 2019

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

  • Php loop (foreach) sowie glob $file

    Guten Abend allen,

    ich habe ein problem mit der Schleife foreach und glob. hier mein Quelltext zurzeit

    PHP-Code:
    <html>
    <h1>Lieferschein Speicher ACHTUNG !! MAXIMAL 36 Positionen</h1>

    <form action="test1.php" method="post"> <input class="btn btn-primary" type="submit" value="Lieferschein Speichern"/>

    <?php

    // Zaehlen der Anzahl der Dateien auf dem Lieferschein Ordner//
    $dirpic "lieferscheine/";
    $handle opendir($dirpic);
    while (
    $filepic readdir($handle))
    {
    if(
    $filepic != "." AND $filepic != "..")
    {
    $i1++;
    }
    }
    closedir($handle);
    if (
    $i1 == 0){
    $i1 0;
    }
    echo 
    $i1;
    //////////////Zaehlen/////////////////


    foreach(glob($dir.'lieferscheine/*.*'GLOB_BRACE) as $file)



    $i=1;
    while (
    $i<=$i1){
    echo 
    $file;

    //verbindung zur Datenbank
    mysql_connect("localhost""*""*") or die(mysql_error());
    mysql_select_db("*") or die(mysql_error());

    $document file_get_contents($file);
    $document9 substr($document227,60);
    ?>

    <textarea name= "09"><?php echo "$document9?></textarea >


    <?php
    $x09 
    $_POST["09"];
    $eintrag "INSERT INTO lieferschein (kdnr) VALUES ('$x09')";
    $eintragen mysql_query ($eintrag);
    $i=$i+1;}

    ?>
    </form>
    </html>

    Ausgabe im Web

    Code:
    <html>
    <h1>Lieferschein Speicher ACHTUNG !! MAXIMAL 36 Positionen</h1>
    
    
    
    <form action="test1.php" method="post"> <input class="btn btn-primary" type="submit" value="Lieferschein Speichern"/>
    
    2lieferscheine/B0180913.002
    <textarea name= "09">61354        00000003000RADI Halogenl.    RJH-PIN33W/230/C/X</textarea >
    
    lieferscheine/B0180913.002
    <textarea name= "09">61354        00000003000RADI Halogenl.    RJH-PIN33W/230/C/X</textarea >
    
    </html>
    Hier wird in dem Ordner "Lieferschein" die Anzahl an Dateien Gezählt. und der soviel textarea ausgegeben, wie Dateien vorhanden sind.

    z.b. 3 Dateien im Ordner entsprechen 3 textarea. nun soll in jeder area immer eine anderer Dateiname stehen. genau da ist mein Problem, denn er gibt bei allen drei den gleichen Dateinamen aus.

    Ich bin schon Tage am suchen und probieren und bin am ende meines Wissen, ich Hoffe Ihr könnt mir helfen.

    Gruss Sanbone

  • #2
    Der Code wimmelt nur so von Fehlern bzw. ist an vielen Stellen total sinnlos.
    Schau dir am Besten mal https://php-de.github.io/jumpto/verzeichnis-auslesen/ aus der Wissenssammlung an und schreibe den Code dann nochmal neu.
    sorry, shift-taste kaputt

    Kommentar


    • #3
      das sind nur die wichtigen ausschnitt für die Funktion, der code selber ist über 3000 Zeilen. ich brauch nur die Hilfe mit der glob ansonsten komme ich denke ich klar

      Kommentar


      • #4
        Spätestens wenn du auf PHP7 umstellen musst kommst du nicht mehr klar, weil dann mysql_* nicht mehr funktioniert.

        Kommentar


        • #5
          PHP-Code:
          foreach(glob($dir.'lieferscheine/*.*'GLOB_BRACE) as $file)



          $i=1
          Signaturrrrrrr

          Kommentar


          • #6
            erstmal allen vielen Dank für die extrem schnelle Antwort.

            ich hab mal ganz klein angefangen

            PHP-Code:
            <html>
            <h1>TEST2</h1>
            <?php
            $dir 
            lieferscheine;
            $iterator = new RecursiveIteratorIterator(
                new 
            RecursiveDirectoryIterator($dir)
            );

            foreach (
            $iterator as $file) {

                if (!
            $file->isFile()) {
                    continue;
                }
                echo 
            $file->getPathname() . "\n";
            }

            $i=1;
            while (
            $i<=2){
            ?>
            <textarea name= "09"><?php echo "$file?></textarea >
            <?php
              $i
            =$i+1;}
            ?>
            </html>
            meine ausgabe ist wie folgt

            Code:
            <html>
            <h1>TEST2</h1>
            lieferscheine/B0180913.001
            lieferscheine/B0180913.002
            <textarea name= "09">lieferscheine/B0180913.002</textarea >
            <textarea name= "09">lieferscheine/B0180913.002</textarea >
            </html>
            die Unterscheidung klappt einfach nicht

            Kommentar


            • #7
              Doch klappt schon, aber nur innerhalb der foreach Schleife...
              Wofür überhaupt die While-Schleife?

              Und das "lieferscheine" gehört in Hochkomma oder Anführungszeichen und nicht die Variable beim echo...
              sorry, shift-taste kaputt

              Kommentar


              • #8
                AH ich verstehe

                PHP-Code:
                <?php
                $dir 
                "lieferscheine";

                $iterator = new RecursiveIteratorIterator(
                    new 
                RecursiveDirectoryIterator($dir)
                );

                foreach (
                $iterator as $file) {

                    if (!
                $file->isFile()) {
                        continue;
                    }
                    
                ?><textarea name= "test"><?php echo $file->getPathname();?></textarea><?php

                }
                ?>
                die ganze Zeit eig. Hatte ich keine foreach. daher die While. Mann muss sich das so vorstellen, dass ich mehrere UGL Dateien vom Händler bekomme, und diese will ich auf die SQl einlesen. Damit ich nicht jede Datei einzel einlesen muss, Wollte ich alle in ein Ordner kopieren und php den rest erledigen lassen.

                Super Klappt genau so wie ich es Wollte.

                nun muss ich mal nachsehen ob und wie ich das ganze umgesetzt bekomme Vielen Herzlichen Dank!

                Kommentar

                Lädt...
                X