1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Daten in CSV schreiben

  • clark_039
  • 28. Juli 2009 um 10:41
  • Unerledigt
  • clark_039
    5
    clark_039
    Mitglied
    Punkte
    205
    Beiträge
    30
    • 28. Juli 2009 um 10:41
    • #1

    Hallo zusammen,

    ich habe ein Formular das Name usw. abfragt, das Formular soll dann die Daten an ein Script senden das diese in eine CSV Datei schreibt.
    Wie realisiere ich das am besten?

    MFG clark_039

  • Myc0rrhizal
    1
    Myc0rrhizal
    Gast
    • 28. Juli 2009 um 11:34
    • #2

    CSV ist ein relatives einfaches Datenformat:

    Ist am ähnlichsten einer Tabelle: Daten Spaleten werden mit einem Komma speariert, neue Zeilen werden mit einem "newline" symbol eingeleitet.

    Du kannst einfach ein File anlegen und öffnen und dann die Daten mittles fputs reinschreiben:

    PHP
    $stream = fopen('filename','w');
    
    
    $row  = "\n";
    $row .= "Eingang\n\n";
    $row .= "Pos;Bezeichnung;Datum;Typ;USt.;USt. Betrag;Netto;Brutto\n";
    
    
    fputs($stream,$row);
    fclose($stream);

    Sollte aber glaub ich ziemlich viele tuts dafür geben. Zu beachten: Kommasepariert kann "," und ";" bedeuten - ich glaub excel kann aber beides lesen. Du musst halt dann logischerweise das jeweils andere Zeichen maskieren wenn du es in der Zelle haben willst.

  • clark_039
    5
    clark_039
    Mitglied
    Punkte
    205
    Beiträge
    30
    • 28. Juli 2009 um 11:50
    • #3

    Danke schon mal für die Antwort.:thumb:

    Ich hab iwo gelesen das es sein kann das alle Daten gelöscht werden wenn 2 User gleichzeitig einen Eintrag machen, stimmt das? Wenn ja wie kann ich das verhindern?

    MFG clark_039

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 28. Juli 2009 um 12:06
    • #4
    Zitat


    Ich hab iwo gelesen das es sein kann das alle Daten gelöscht werden wenn 2 User gleichzeitig einen Eintrag machen, stimmt das? Wenn ja wie kann ich das verhindern?

    Das hat nichts mit CSV an sich zu tun. Wenn zwei Personen gleichzeitig eine Datei auf einem Filesystem bearbeiten, und die Software liest die Daten zu beginn in den Speicher, dann das natuerlich zu Problemen fuehren. In deinem Fall solltest du die ausgefuellten Formulare in einer Queue stecken, und nur ein Prozess schreibt die Daten aus der Queue in das File.


    CSV ist kein ordentlich spezifiziertes Format.

    Spaltenseparator ist eigentlich Komma, aber wenn das bereits als Dezimaltrennzeichen verwendet wird (z.b. deutschprachiger Raum), dann nimmt man schonmal Semikolon oder auch Leerzeichen. Spreadsheetprogramme behandeln das unterschiedlich: Calc fragt zu Beginn nach, welcher Separator verwendet wird. Excel erwartet entweder Semikolon oder Komma, je nachdem ob Du eine Deutsche oder Englische Version installiert hast. Google Spreadsheet erwartet immer das Komma.

    String literale am besten in Anfuehrungszeichen, weil diese ja auch die Spalten separatoren verwenden koennen. Anfuehrungszeichen in Stringliteralen muessen nochmal extra in Anfuehrungseichen eingebettet werden.


    Schau am besten mal hier rein bevor du da was schreibst:

    http://en.wikipedia.org/wiki/Comma-sep…s#Specification

    Alles in allen ist CSV zwar einfach, aber doch kompliziert genug, um besser eine library zu verwenden. Fuer PHP + CSV findet sich ueber Google das hier: http://us2.php.net/manual/en/function.fputcsv.php . Viel Spass.

    lg, Benjamin Ferrari, bookworm.at

    Einmal editiert, zuletzt von a9bejo (28. Juli 2009 um 12:10)

  • clark_039
    5
    clark_039
    Mitglied
    Punkte
    205
    Beiträge
    30
    • 28. Juli 2009 um 20:23
    • #5

    Okey danke, jetz meine, hoffentlich, letzte Frage.
    Wenn ich die CSV Datei von meinem Browser aus aufrufe sehen die Sonderzeichen so aus, ßß. Wie kann ich die CSV datei so ausgeben lassen sodass ich wieder die "normalen" Sonderzeichen angezeigt bekomme.

    MFG clark_039

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 28. Juli 2009 um 20:42
    • #6

    Kurze Antwort:

    Dein Browser muss wissen, mit welchem Zeichensatz der Text codiert ist. Das kannst du ihm sagen, indem du in deiner HTTP response im content-type header den Zeichensatz angibst, den du auch beim schreiben verwendet hast.

    Lange Antwort:

    http://www.joelonsoftware.com/articles/Unicode.html

    lg, Benjamin Ferrari, bookworm.at

  • clark_039
    5
    clark_039
    Mitglied
    Punkte
    205
    Beiträge
    30
    • 28. Juli 2009 um 20:48
    • #7

    Danke dir, jetzt funktionierts, so einigermaßen ^^.

    MFG clark_039

    Einmal editiert, zuletzt von clark_039 (29. Juli 2009 um 09:58) aus folgendem Grund: Problem gelöst

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung