Chris: .csv Dateien reinschreiben und updaten

Hallo,

ich habe ein Formular wo man in einer textarea irgendwas reinschreiben kann. Also irgendein Text. Dieser Text wird dann in eine .csv Datei gespeichert. Soweit so gut. Aber, wie kann ich diesen einfachen Text wieder in einem anderen Formular auslesen und den Text wieder updaten? Geht sowas?

Hier mein Script zum reinschreiben:
<?php
function my_nl2br ($text)
{
   $retvalue="";
   for ($ii=0; $ii < strlen($text); $ii++)
   {
      if ($text[$ii]!=chr(13))
      $text[$ii]=="\n" ? $retvalue .= "<br>" : $retvalue .= $text[$ii];
   }
   return $retvalue;
}

if (!file_exists("text.csv"))  fclose(fopen("text.csv","w+"));

if ($HTTP_POST_VARS['inhalt'])
{
   $fp=fopen("text.csv","a");
   $HTTP_POST_VARS['inhalt']=addslashes($HTTP_POST_VARS['inhalt']);
   fwrite($fp, my_nl2br($HTTP_POST_VARS['inhalt']));
   fclose($fp);
}
?>

Vielen Dank für eure Hilfe!

  1. Halihallo Chris

    ich habe ein Formular wo man in einer textarea irgendwas reinschreiben kann. Also irgendein Text. Dieser Text wird dann in eine .csv Datei gespeichert. Soweit so gut. Aber, wie kann ich diesen einfachen Text wieder in einem anderen Formular auslesen und den Text wieder updaten? Geht sowas?

    Beantworte deine Frage selber, indem du es ausprobierst.

    Ohne vertiefend auf den Quelltext einzugehen habe ich nur folgendes anzumerken:
    updaten kann man im Filezugriffsmodus 'a' (wie append) schlecht, denn dieser, wie der
    Name schon sagt, fügt nur neues an. Zudem ist fwrite für Textdateien (wie CSV es ist)
    weniger sinnvoll, verwende zeilenbasierte Funktionen (fputs, fgets zum Beispiel).

    Bei CSV kommt man meistens nicht drum herum, alle Daten in eine geeigene Datenstruktur
    einzulesen, dann zu ändern und die gesamte Struktur zurück in die CSV zu schreiben.

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
    1. Hallo Philipp,

      Ok nur wie erstellt man so eine Datenstruktur?

      wenn ich Sie ungefähr so haben würde wie:

      |id|text
      |1 |schalalalalal

      Das wäre ja eigentlich alles, da ich nur einen Satz oder 2 Sätze benötige. Quasi nur eine id.

      Bei CSV kommt man meistens nicht drum herum, alle Daten in eine geeigene Datenstruktur
      einzulesen, dann zu ändern und die gesamte Struktur zurück in die CSV zu schreiben.

      Für weitere Hilfe wär ich sehr dankbar.

      Chris

      1. Halihallo Chris

        Ok nur wie erstellt man so eine Datenstruktur?
        wenn ich Sie ungefähr so haben würde wie:
        |id|text
        |1 |schalalalalal

        Ein Array in einem Array, oder ein assoziatives Array mit id als Schlüssel und einem
        Array als Wert, z. B. Hängt aber stark davon ab, was du tun willst.

        Das wäre ja eigentlich alles, da ich nur einen Satz oder 2 Sätze benötige. Quasi nur eine id.

        Eine id macht mit nur einer Ausprägung wenig Sinn (es sei denn, künftig und wenn ich von
        künftig spreche, spreche ich von "in alle Ewigkeit"). Also: Du musst dir zuerst auf eine
        Frage antworten: Wir auf eh und jeh nur eine id benötigt, oder besteht eine klitze kleine
        Chance, dass du mal zwei Ausprägungen davon benötigst?

        Wenn Ja, dann _musst_ du bereits jetzt dafür sorgen, dass deine Datenstruktur mehr als
        eine id "verwalten" kann (genauso das Programm). Wenn nein, dann schreib die Sätze
        einfach untereinander.

        Eine weitere Frage zum finden einer guten Datenstruktur: Wie musst du auf die Daten
        zugreifen; was willst du damit tun (auch verbunden mit der Frage, was wird da überhaupt
        gespeichert)?

        Viele Grüsse

        Philipp

        --
        RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
        Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
        1. Halihallo Chris

          Hi Philipp,

          Wofür ich das alles brauche usw? Ok ich brauche wirklich nur einen Satz für alle Ewigkeit ;) Also nur eine ID. Und zwar will jemand nur einen kleinen Satz oder Text in eine bestehende Perl Seite schreiben. Dieser jemand hat aber 0 Ahnung von html/php usw. und will dies gerne über ein Admininterface (CMS) machen. Da bei den Perl Seiten die bestehende DB aus .csv Dateien besteht und alle .csv Dateien so aussehen:

          title|homepage|usw...
          Diese Seite|http://www.diese-seite.hier|usw...

          Dachte ich mir, machste das am besten auch so mit .csv Dateien. Weil ich keine Ahnung von Perl habe und ich nicht weiss wie da .csv Dateien eingelesen werden, wollte ich die bestehenden Funktionen nehmen. Das würde auch wunderbar klappen aber wie du schon richtig sagtest geht das wohl nur über diese Struktur. Ich habs probiert nur den Text einzulesen, bin aber kläglich gescheitert :(

          Zusammendfassend: Ich brauche nur diese Struktur jetzt:

          id|text
          1|ein kleiner Satz oder so

          Und müsste halt wissen wie ich sowas realisieren könnte. Das es eben genauso in der text.csv steht wie oben beschrieben und dann auch noch nur diesen Satz ändern kann. Das ist ja glaube ich das schwierige an der ganzen Sache. :/

          Ich habs ja auch mittlerweile soweit geschafft gehabt das ich eben nur diesen Text gespeichert hatte ohne Struktur und den dann auch wieder ändern konnte, aber nicht in die Perl Seite einlesen konnte :(

          Gruß Chris

          1. Halihallo Chris

            Wofür ich das alles brauche usw? Ok ich brauche wirklich nur einen Satz für alle Ewigkeit ;) Also nur eine ID. Und zwar will jemand nur einen kleinen Satz oder Text in eine bestehende Perl Seite schreiben. Dieser jemand hat aber 0 Ahnung von html/php usw. und will dies gerne über ein Admininterface (CMS) machen. Da bei den Perl Seiten die bestehende DB aus .csv Dateien besteht und alle .csv Dateien so aussehen:

            Stop, stop, ich komm nimmer mit...
            Ein Perl-Programm generiert eine Page über Daten aus CSV-Dateien? - Über ein PHP-Script,
            möchtest du dem Kunden die Möglichkeit bieten, diese Daten über ein Userinterface
            nachzubearbeiten. Ist das so richtig?

            Wenn ja, wozu brauchst du eine weitere CSV-Datei? - Verwende jene, die vom Perl-Programm
            verwendet werden.

            Ich habs ja auch mittlerweile soweit geschafft gehabt das ich eben nur diesen Text gespeichert hatte ohne Struktur und den dann auch wieder ändern konnte, aber nicht in die Perl Seite einlesen konnte :(

            Das nehme ich an, Perl erwartet eine genau definierte CSV-Datei, wenn ich dich richtig
            verstanden habe.

            Viele Grüsse

            Philipp

            --
            RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
            Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.