fgets

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

  • fgets

    Hallo,

    hab mal so eine Anfängerfrage. Ist es möglich, dass man bei fgets(), welches ja die Datei zeilenweise liest, auch definieren kann, dass z.B. von jeder Zeile nur die zweite und vierte Stelle gelesen wird?

    Z.B.

    Haus;Nummer;Strasse;Ort;Land

    Dies wäre jetzt die erste Zeile der Datei xy.csv und nun möchte ich aber nur die "Nummer" und "Ort" mittels fgets() ausgeben lassen. Kann man dies so herauspicken und falls nein, was gäbe es da für Alternativen?

    Danke für jegliche Hinweise!!!

  • #2
    Nein kann man nicht, sonst stünde es unter fgets.

    Aber es gibt explode und fgetcsv

    Kommentar


    • #3
      http://www.phpcenter.de/de-html-manu...n.fgetcsv.html


      Edit:
      ... da war wohl jemand schneller ...

      Kommentar


      • #4
        klar!

        Kommentar


        • #5
          Super. Mit dem explode() kann man den Teil dieses Arrays rauspicken. Aber da hab ich noch eine Frage betreffend dem $key (Haus).

          Wenn ich mehrere Zeilen in der Datei habe und z.B. Zeile 2 mittels einer Session auf eine andere Seite schicke, aber will das es mir den richtigen $key (Haus) zu der zweiten und vierten Stelle der betreffenden Zeile zuweist, kann ich das auch bestimmen? Oder anders gesagt, ich möchte immer "automatisch" den richtigen $key zu den zwei Elementen der betreffenden Zeile anfügen, die ich z.B. mittels einer $_SESSION rübergeschickt habe.

          Kommentar


          • #6
            Wenn ich mehrere Zeilen in der Datei habe und z.B. Zeile 2 mittels einer Session auf eine andere Seite schicke, aber will das es mir den richtigen $key (Haus) zu der zweiten und vierten Stelle der betreffenden Zeile zuweist, kann ich das auch bestimmen? Oder anders gesagt, ich möchte immer "automatisch" den richtigen $key zu den zwei Elementen der betreffenden Zeile anfügen, die ich z.B. mittels einer $_SESSION rübergeschickt habe.
            Hat das jemand verstanden? Also ich checks nicht

            Kommentar


            • #7

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                - Mach dich nicht über die geistlichen Ergüsse von anderen lustig!

                Zuletzt geändert von DerSchonWieder; 25.03.2008, 21:04.

                Kommentar


                • #9
                  Vielleicht war's wohl etwas zu unverständlich mit meiner Zusatzfrage, aber ich versuch's noch ein letztes Mal mit einem anderen Beispiel..

                  Angenommen ich hab einen kleinen Webshop, dass in etwa so aussieht:

                  Artikelnummer Bezeichnung Einzelpreis Button(Einkaufwagenicon)
                  123 Hemd 25.50
                  453 Hose 45.56
                  usw.

                  Nun diese Seite ist die Katalogseite! Jetzt klicke ich den Artikel Hose mittels Button an und dann wird dieser Artikel mittels einer "id", welche die Artikelnummer enthält via $_SESSION auf die Warenkorbseite geschickt.

                  Dort angelangt, soll mir nebst der Artikelnummer und Anzahl (z.B. 4 Paar Hosen) nochmals die Bezeichnung, hier also Hose, sowie der Einzelpreis angezeigt werden. Quasi dieselbe Tabelle, aber zusätzlich noch mit der Anzahl bestellter Hosen. Soweit unklar?

                  Nun, wird aber ja nur die Artikelnummer ($key) und die Anzahl ($value) des bestellten Artikels via Session rübergeschickt. Die Daten werden über die "Datenbankdatei" produkte.csv geholt, sprich Artikelnummer, Bezeichnung und Einzelpreis.

                  Jetzt meine Frage. Kann ich nun auf der Warenkorbseite die Bezeichnung sowie den Einzelpreis mit fgets() der richtigen Artikelnummer zuordnen, die aus der Katalogseite herkommt oder nicht? Oder gibt's dafür eine andere Lösung?

                  Ich hoffe, dass es jetzt ein bissel klarer ist...

                  Kommentar


                  • #10
                    In diesen Katalog.
                    Heißt jede Zeile eine Artikelnummer?

                    Zeile 1: Artnr. 1
                    Zeile 2: Artnr. 2
                    Zeile 3: Artnr. 3
                    Zeile 4: Artnr. 4

                    Dann durchlaufe die Datei Zeilenweise, zähl dabei ein Zähler hoch und wenn der Zähler=Gewünschte Art-Nr, dann ausgeben.

                    Was anderes würde mir jetzt auf die schnelle nicht einfallen ....

                    cu.

                    Kommentar


                    • #11
                      Ja, und die wird dann rübergeschickt. Auf der Warenkorbseite aber müssen die fehlenden Daten, sprich Bezeichnung und Einzelpreis von der Datei produkte.csv noch richtig "angehängt" werden.

                      Dies ist nun die "Knacknuss" bzw. frägt sich, ob das so mit PHP überhaupt geht. Wie Du siehst, ist das ja keine Datenbank und wäre ja in der Praxis so gar nicht sinnvoll und nur für ganz kleine Dinge geeignet. Aber es geht mir hier nur darum, ob dies technisch überhaupt so machbar ist.

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php

                        //$i: Jenachdem, ob Art-Nrn nullbasiert sind anpassen!
                        for($i 1$i $artnr$i++)
                        {
                          
                        fgets() //Args natürlich anpassen! 
                        }
                        $CurArt fgetcsv();
                        ?>
                        Ist doch garnicht so schewer.

                        Kommentar


                        • #13
                          Original geschrieben von DerSchonWieder
                          Ist doch garnicht so schewer.
                          Funktioniert so aber nur, wenn die Datei sortiert ist.
                          Ich finde es sowieso sehr ambitiös, eine Shop ohne Datenbank bauen zu wollen.
                          Aber du kannst ja einach die Datei nach der Artikelnummer durchsuchen:
                          PHP-Code:
                          while ($zeile fgetcsv($fp512';'){    // Zeilen einzeln lesen
                              
                          if ($zeile[0] == $artikelnummer){    // Wenn Art# gefunden
                                  
                          echo $zeile[3];        // Oder wo die Bezeichnung ist und was du tun willst
                                  
                          break;    // Suche abbrechen
                              
                          }

                          Gruss
                          H2O

                          Kommentar


                          • #14
                            @H²O
                            Dein Weg ist natürlich viel eleganter - Wieder was dazu gelernt.


                            cu.

                            Kommentar

                            Lädt...
                            X