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
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
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:
$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.
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
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.
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
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:
Danke dir, jetzt funktionierts, so einigermaßen ^^.
MFG clark_039
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!