CSV Datei mit Absätzen ?!

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

  • CSV Datei mit Absätzen ?!

    Also ich habe ein kleines Script das wie folgend erklärt aussieht:

    In einem Formular können Besucher einen Artikel veröffentlichen, dieser Artikel + Name und Überschrift wird in einer CSV Datei gespeichert. Auf einer anderen Seite werden die CSV Datein geladen und die Artikel aufgerufen.

    Im Grunde funktioniert mein Script auch das Problem ist aber folgendes: Wenn jemand im Formular Absätze oder Zeilenumbrüche macht, erhalte ich in der CSV ein Chaos demnach sieht auch die Eingabe aus, bei einem manuellen Zeilenumbruch im Formular wird dieser in der CSV als neuer Datensatz gespeichert

    Wie löse ich das Problem?

    M.f.G
    Max
    Zuletzt geändert von mexxfly; 09.08.2005, 00:02.

  • #2
    Re: CSV Datei mit Absätzen ?!

    hin
    PHP-Code:
    $text str_replace("\n"'\n'str_replace("\r\n""\n"$text)); 
    zurück
    PHP-Code:
    $text str_replace('\n'"\n"$text); 
    nicht sauber, aber effektiv ^^

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      sorry habs jetzt nur so teilweise verstanden. Wenn ich jetzt folgende 2 Codes hab wo und wie muss ich den jetzt einfügen?

      Hier wird der Text in die CSV eingeschriben.

      PHP-Code:
      $trenner=";";
      $datensatz=$titel;
      $datensatz.=$trenner;
      $datensatz.=$nick;
      $datensatz.=$trenner;
      $datensatz.=$inhalt;
      $datensatz.="\n";
       
       
      $datei=fopen("artikel/shisha.csv","a");
       
      fwrite($datei,$datensatz);
       
      fclose($datei);
       }
        if(
      $kat=="tabak"){
        
      $datei=fopen("artikel/tabak.csv","a");
       
      fwrite($datei,$datensatz);
       
      fclose($datei);
       } 
      Und hier ausgegeben


      1. Zur Übersicht
      PHP-Code:
      $shishadatei="artikel/shisha.csv";
                                      
      $datei=fopen($shishadatei,"r");
                                      
      $groesse=filesize($shishadatei);
                                      while((
      $data=fgetcsv($datei,$groesse,";"))!=false) {
                                      print(
      "<A HREF=#$data[0]>$data[0]</A>");
                                      print(
      "<br>");
                                      } 
      2.Der Artikel selber
      PHP-Code:
      $shishadatei="artikel/shisha.csv";
                                      
      $datei=fopen($shishadatei,"r");
                                      
      $groesse=filesize($shishadatei);
                                      while((
      $data=fgetcsv($datei,$groesse,";"))!=false) {
                                      print(
      "<p><hr>");
                                      print(
      "<strong>$data[0]</strong><A NAME=$data[0]>");
                                      print(
      "<div align='right'>von $data[1]</div>");
                                      print(
      "<p>");
                                      print(
      "$data[2]");
                                      
                                      } 

      Kommentar


      • #4
        PHP-Code:
        $trenner=";";
        $datensatz=$titel;
        $datensatz.=$trenner;
        $datensatz.=$nick;
        $datensatz.=$trenner;
        $datensatz.=str_replace("\n"'\n'str_replace("\r\n"'\n'$inhalt));
        $datensatz.="\n";
         
         
        $datei=fopen("artikel/shisha.csv","a");
         
        fwrite($datei,$datensatz);
         
        fclose($datei);
         }
          if(
        $kat=="tabak"){
          
        $datei=fopen("artikel/tabak.csv","a");
         
        fwrite($datei,$datensatz);
         
        fclose($datei);
         } 
        Und hier ausgegeben

        2.Der Artikel selber
        PHP-Code:
        $shishadatei="artikel/shisha.csv";
                                        
        $datei=fopen($shishadatei,"r");
                                        
        $groesse=filesize($shishadatei);
                                        while((
        $data=fgetcsv($datei,$groesse,";"))!=false) {
                                        print(
        "<p><hr>");
                                        print(
        "<strong>$data[0]</strong><A NAME=$data[0]>");
                                        print(
        "<div align='right'>von $data[1]</div>");
                                        print(
        "<p>");
                                        print(
        nl2br(str_replace('\n'"\n"$data[2])));
                                        
                                        } 


        Variablen setzt man nicht in ", also
        PHP-Code:
        echo "$test";
        // wird zu
        echo $text 
        und nl2br() wandelt Umbrüche in <br> um!

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          danke! gleich mal testen

          Kommentar


          • #6
            funktioniert leider irgendwie nicht, gleiches Problem wie davor.

            Kommentar


            • #7
              dann hast du etwas falsch gemacht. nl2br() ist schon das richtige.

              PHP-Code:
              $a "eins

              zwei

              drei"
              ;

              echo 
              '<pre>'.nl2br($a).'</pre>'

              Kommentar


              • #8
                nope jetzt nochmal alles durchgedacht mir die Funktionen im php faq durchgelesn aber irgendwie bekomm ichs net hin... mal sehen nochmal probiern

                Kommentar


                • #9
                  So weiß jetzt wo der Fehler liegt, weiß aber nicht wie ich ihn beheben kann.

                  Erklärung:

                  $Datensatz sieht z.b folgendermaßen aus:

                  ---------
                  Absatz 1 Text
                  Erster Umbruch Absatz

                  Absatz2 Text
                  Erster Umbruch Absatz2
                  ----------
                  -> das ist der $datensatz

                  PHP-Code:
                  fwrite($datei,nl2br($datensatz)); 
                  Dieser Code wandeld es aber nicht in eine Zeile um sondern:

                  Absatz 1 Text<br />
                  Erster Umbruch Absatz 1<br />
                  <br />
                  Absatz2 Text<br />
                  Erster Umbruch Absatz2<br />
                  <br />



                  M.f.G
                  Max

                  Kommentar


                  • #10
                    PHP-Code:
                    $a "eins

                    zwei

                    drei"
                    ;

                    echo 
                    '<pre>'.nl2br(str_replace("\r"''$a)).'</pre>'

                    Kommentar


                    • #11
                      Original geschrieben von penizillin
                      PHP-Code:
                      $a "eins

                      zwei

                      drei"
                      ;

                      echo 
                      '<pre>'.nl2br(str_replace("\r"''$a)).'</pre>'

                      Ja aber mein Text wird in eine CSV gespeichert und sollte deshalb beim speichern schon richtig formatiert werden, bei der Ausgabe ist es zu spät. (Array)

                      Kommentar


                      • #12
                        meine fresse, dann ersetz doch echo durch
                        PHP-Code:
                        $var_die_du_speicherst nl2br(...); 

                        Kommentar


                        • #13
                          bitte nicht schlagen aber ich hab das schon folgendermaßen probiert:

                          so wird das in die CSV eingeschrieben.
                          PHP-Code:
                          $inhalt2=nl2br(str_replace("\r"''$inhalt)); 
                          jetzt ist es auch tatsächlich in einer Zeile uns sieht wie folgend aus:

                          Blabla<br /><br />blabla<br /><br />blabal

                          wenn ich es jetz aber über

                          PHP-Code:
                           print("<pre>"$data[2]"</pre>"); 
                          ausgeben will kommt wieder das gleiche schlamassel

                          Kommentar


                          • #14
                            kann man das "schlamassel" kopieren und hier mal zeigen?

                            Kommentar


                            • #15
                              Ok ich gebe im Formular folgenden Text ein:

                              ----
                              Absatz 1 Zeile eins es folgt ein Umbruch
                              Zeile 2 Absatz 1 es folgen 2 Umbrüche

                              Absatz2 Zeile 1 es folgt ein Umbruch
                              Zeile 2 Absatz 2 es folgt nichts mehr
                              ----

                              Dieser wird über
                              PHP-Code:
                              $inhalt2=nl2br(str_replace("\r"''$inhalt)); 
                              in die 3. Zelle gespeichert.
                              In der CSV sieht der Text jetzt folgendermaßen aus:
                              ABER ES IST ALLES IN EINER ZEILE!
                              -----
                              Test;Max;Absatz 1 Zeile eins es folgt ein Umbruch<br />
                              Zeile 2 Absatz 1 es folgen 2 Umbrüche<br />
                              <br />
                              Absatz2 Zeile 1 es folgt ein Umbruch<br />
                              Zeile 2 Absatz 2 es folgt nichts mehr
                              -----
                              wenn ich jetzt auf einer anderen Seite über folgenden Code:
                              PHP-Code:
                              $shishadatei="artikel/shisha.csv";
                              $datei=fopen($shishadatei,"r");
                              $groesse=filesize($shishadatei);
                                                              while((
                              $data=fgetcsv($datei,$groesse,";"))!=false) {
                                  print(
                              "<p><hr>");
                                  print(
                              "<strong>$data[0]</strong><A NAME=$data[0]>");
                                  print(
                              "<div align='right'>von $data[1]</div>");
                                  print(
                              "<p>");
                                  print(
                              "<pre>$data[2]</pre>");
                                                              
                                                              } 
                              Bekomm ich folgendes heraus:
                              -------------------------------
                              Test
                              von Max

                              Absatz 1 Zeile eins es folgt ein Umbruch
                              -----------------------------------------------------------
                              Zeile 2 Absatz 1 es folgen 2 Umbrüche

                              >
                              von
                              --------------------------------------------------------------

                              >
                              von
                              --------------------------------------------------------------
                              Absatz2 Zeile 1 es folgt ein Umbruch

                              >
                              von
                              ----------------------------------------------------
                              Zeile 2 Absatz 2 es folgt nichts mehr
                              von
                              ----------------------------------------------------------

                              Die Linie sind <hr> Tags, und Fett sollte nur die Überschrift also Zelle 0 sein.

                              Kommentar

                              Lädt...
                              X