Problem beim Speichern eines Textfeldes in eine Textdatei.

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

  • Problem beim Speichern eines Textfeldes in eine Textdatei.

    Hallo zusammen,

    ich bin sehr verzweifelt. Ich habe ein ganz simples Script gebaut. Es geht darum aus einem simplen Admin-Bereich heraus eine Textdatei zu ändern, welche von einer php Datei geladen wird.

    Konkret:

    Die Datei news.php liest die Textdatei und stellt den Inhalt in einer simplen HTML Seite dar:
    PHP-Code:
    <html>
    <head>
        <title>test</title>
    </head>
    <body>



    <?php
    $datei 
    fopen("data/content.txt","r");
    if (
    $datei)
    {
       while(!
    feof($datei))
       {
          
    $data fgets($datei,255);
              echo 
    "$data";  
       }
    }
    ?>



    </body>
    </html>

    In dem Ordner "data" liegen 2 Dateien:

    "context.txt" speichert den Inhalt aus dem Formular des Admin Bereiches:

    <h1>Willkommen auf unserer Website</h1>
    <p>Bla bla bla. Längerer Text!<br>
    <a href src="beispiel.html">Beispiel-Link</a></p>


    Und die Datei "admin.php" um den Text aufzurufen und zu ändern:


    PHP-Code:
    <?php


    if (isset($content))
    {

       
    $time time();
       
    $datei fopen("content.txt","w");
       if (
    $datei)
       {    
          
    $content nl2br(stripslashes($content));
          
    fputs($datei"$content");
          
    fclose($datei);
       }


    echo 
    "<font size=\"1\" face=\"verdana\">Alles gespeichert...</font>";




    else 
    {


    echo 
    "<form action=\"admin.php\" method=\"post\"><textarea name=\"content\" cols=\"80\" rows=\"20\">";

    $datei fopen("content.txt","r");
    if (
    $datei)
    {
       while(!
    feof($datei))
       {
          
    $data fgets($datei,255);
          
    $array explode("<br />",$data);

              echo 
    "$array[0]\n";
          
       }
    }

    echo 
    "</textarea><br>
    <input type=\"Submit\" name=\"\" value=\"ƒnderungen speichern\"> <input type=\"reset\"> </form>"
    ;

    }


    ?>

    Mein Problem:
    Bei jedem Aufrufen und Speichern des Textes (Ich nutze einen längeren Text als in diesem Beispiel), hat er einen anderen Zeilenumbruch. Teilweise sind ganze Wörter zerschnitten.
    Am liebsten wäre es mir wenn der Text nur bei selbst gesetzten <br> Zeichen umbricht.

    Was kann ich ändern?

    Vielen vielen Dank fürs Lesen, ich hoffe auf eure Hilfe.
    /Jan

  • #2
    Was kann ich ändern?
    z.B. so
    PHP-Code:
    str_replace('<br />','<br />\r\n',$string); 
    Eine Textdatei erkennt nur \r\n oder \n als Zeilenendzeichen und keine brs. Also fix einfach die brs durch \r\n oder \n je nach System ersetzen und erst dann in die Datei schreiben.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Danke für deine schnelle Antwort!

      durch \r\n oder \n je nach System ersetzen
      Was meinst du mit System? Mein Serverplatz liegt bei Strato.

      Und an welcher Stelle soll ich deine Zeile einfügen?
      Denn wie die Textdatei aussieht ist mir ja prinzipiell egal, solange der Text bei der Darstellung in news.php (=HTML) vernünftig bricht.

      Vielen Dank, Jan
      Zuletzt geändert von Jan_Riggert; 09.08.2006, 08:08.

      Kommentar


      • #4
        Was meinst du mit System? Mein Serverplatz liegt bei Strato.
        Er meint das verwendete Betriebssystem.

        Wenn du dir nicht sicher bist probier einfach ob du beim ersetzen durch \r\n oder \n den gewünschten effekt erzielst.

        Kommentar


        • #5
          Ich nutze Apple, aber letztlich soll die Seite ja in allen Browsern korrekt angezeigt werden.

          Vielleicht hab ich mich falsch ausgedrückt.
          Die Textdatei ist mir im Prinzip egal. Nur wenn "news.php" den Inhalt der Textdatei ins HTML-Gerüst lädt, sollen die ganzen (mysteriösen) Zeilenumbrüche verschwinden.

          Kommentar


          • #6

            Kommentar


            • #7
              Ich tu es nich gern, aber

              Ich brauch immer noch Rat.

              Kommentar

              Lädt...
              X