Probleme mit fread

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

  • Probleme mit fread

    Hi,
    ich habe eine mehrzeilige Textbox in meiner Seite. Mehzeilige Eingaben erfolgen normal mit der "Enter"-Taste.
    Danach wird der Text der Box per fwrite in eine txt-Datei geschrieben.

    Wenn ich die Datei dann mit fread wieder auslese und den Inhalt in einer Textbox ausgeben will, erscheint anstatt der Zeilenumbrüche "<br />", also statt
    fff
    fff
    fff

    steht dann dort

    fff
    <br />
    fff
    <br />
    fff

    Wie kann ich das ändern ?

    Danke,
    Swen

  • #2
    string ereg_replace ( string Suchmuster, string Ersatz, string Zeichenkette)
    tata
    moqui

    [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

    Kommentar


    • #3
      Re: Probleme mit fread

      Da dieses Verhalten eigentlich durchaus nicht normal ist, wäre es hilfreich wenn du das Script posten könntest.

      Beziehungsweise suche mal bitte nach Funktionen wie htmlentities oder nl2br.
      Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

      Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

      Wer suchet, der findet: http://www.php-resource.de/forum/search.php
      Immer noch nichts? Dann frag!


      Mit freundlichen Grüßen,
      @4u

      Kommentar


      • #4
        Re:

        Hi,

        in die Datei geschrieben wird der Text so:


        $fd = fopen("adressen.txt", "w");
        fwrite($fd, $list);
        fclose($fd);

        und ausgelesen so:


        $filename = "adressen.txt";
        $handle = fopen ($filename, "r");
        $contents = fread ($handle, filesize ($filename));

        $list=str_replace("<br />","\n",$contents);

        fclose ($handle);


        list heisst die Textbox

        Grüsse,
        Swen

        Kommentar


        • #5
          Folgendes: Ich nehme an <br /> ist durchaus beabsichtigt (innerhalb von textarea - beim benutzer wird es ja als normaler Zeilenumbruch angezeigt).

          Dein Problem ist, dass Windows nicht nur \n sondern auch \r sendet (ersteres ist eine "Neue Zeile"-Anweisung, zweiteres erinnert an die Schreibmaschinenzeit und heißt soviel wie "Zeilenrückschub").

          Wie dem auch sei - um diese \r s zu entfernen, einfach

          preg_replace ("#\r#i","",$list);

          anwenden - fertig
          Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

          Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

          Wer suchet, der findet: http://www.php-resource.de/forum/search.php
          Immer noch nichts? Dann frag!


          Mit freundlichen Grüßen,
          @4u

          Kommentar


          • #6
            Re:

            Hi,
            jetzt wird aber anstatt

            ttt
            ttt
            ttt


            ttt<br />
            ttt<br />
            ttt<br />


            angezeigt !


            Swen

            Kommentar


            • #7
              Re: Re:

              Original geschrieben von paramedic78
              Hi,
              jetzt wird aber anstatt

              ttt
              ttt
              ttt


              ttt<br />
              ttt<br />
              ttt<br />


              angezeigt !


              Swen
              Also doch keine absichtlichen <br />-Tags. Ersetze str_replace durch preg_replace ("#<br(.*?)>#i","",$contents);
              Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

              Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

              Wer suchet, der findet: http://www.php-resource.de/forum/search.php
              Immer noch nichts? Dann frag!


              Mit freundlichen Grüßen,
              @4u

              Kommentar


              • #8
                Re.

                Mmmhh, sorry, geht auch nicht.

                Nochmal mein Quelltext:

                Speichern:

                $fd = fopen("adressen.txt", "w");
                preg_replace ("#<br(.*?)>#i","",$list);
                fwrite($fd, $list);
                fclose($fd);


                Laden:

                $filename = "adressen.txt";
                $handle = fopen ($filename, "r");
                $contents = fread ($handle, filesize ($filename));
                preg_replace ("#<br(.*?)>#i","",$contents);

                $te=$contents;

                Ergebnis:

                ttt
                <br />
                ttt
                <br />
                ttt


                Swen

                Kommentar


                • #9
                  Re: Re.

                  Original geschrieben von paramedic78
                  Mmmhh, sorry, geht auch nicht.

                  Nochmal mein Quelltext:

                  Speichern:

                  $fd = fopen("adressen.txt", "w");
                  preg_replace ("#<br(.*?)>#i","",$list);
                  fwrite($fd, $list);
                  fclose($fd);


                  Laden:

                  $filename = "adressen.txt";
                  $handle = fopen ($filename, "r");
                  $contents = fread ($handle, filesize ($filename));
                  preg_replace ("#<br(.*?)>#i","",$contents);

                  $te=$contents;

                  Ergebnis:

                  ttt
                  <br />
                  ttt
                  <br />
                  ttt


                  Swen
                  Öhm ...
                  PHP-Code:
                  $contents preg_replace ("#<br(.*?)>#i","",$contents); 
                  Wenn schon, denn schon richtig einfügen
                  Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

                  Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

                  Wer suchet, der findet: http://www.php-resource.de/forum/search.php
                  Immer noch nichts? Dann frag!


                  Mit freundlichen Grüßen,
                  @4u

                  Kommentar


                  • #10
                    Re

                    Hi,

                    das funktioniert leider immer noch nicht. Das <br /> bleibt zwischen den Zeilen.

                    Ich versteh' das nicht !


                    Swen

                    Kommentar


                    • #11
                      Kann ich so leider ersteinmal nichts weiter dazu sagen - es wäre eventuell hilfreich, wenn du das komplette Script nochmal als Dateianhang mitschickst (auch die HTML-Datei woher die Daten kommen bzw. wohin die Daten gehen) damit man es sich auf dem eigenen Rechner genauer anschauen kann.
                      Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

                      Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

                      Wer suchet, der findet: http://www.php-resource.de/forum/search.php
                      Immer noch nichts? Dann frag!


                      Mit freundlichen Grüßen,
                      @4u

                      Kommentar


                      • #12
                        Re

                        Hi,

                        habe das Script angehängt (umbenannt nach *.txt)

                        In die Box "Adressliste" sollen Adressen eingetragen werden und nach Klick auf "aktualisieren" gespeichert werden in adressen.txt

                        Der Rest ist uninteressant ... ;-)

                        Swen
                        Angehängte Dateien

                        Kommentar


                        • #13
                          Hallo,

                          also zum Thema <br />

                          ich habe in deiner Scriptfunktion bereits auf den ersten Blick mehrere "nl2br()"-funktionen entdeckt. Natürlich wandeln diese - wie der Name schon sagt, Zeilenumbrüche in "<br />" um. Prüfe bitte jeden dieser Funktionsaufrufe, ob er denn auch wirklich dort hin soll.
                          Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

                          Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

                          Wer suchet, der findet: http://www.php-resource.de/forum/search.php
                          Immer noch nichts? Dann frag!


                          Mit freundlichen Grüßen,
                          @4u

                          Kommentar


                          • #14
                            hmmmm....

                            nl2br, obwohl man keine <br>'s will....net schlecht
                            tata
                            moqui

                            [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

                            Kommentar


                            • #15
                              Re

                              Hi,

                              die nl2br-Funktionen beziehen sich nicht auf die Textbox "Adressliste", sondern auf die anderen, wo Sie auch gewollt sind.

                              In dem Teil des Codes, der sich auf meine Frage bezieht (zeilen 3-27), befindet sich kein nl2br .

                              Wenn ich in der Zeile 404 das nl2br entferne, werden die Zeilen trotzdem nicht korrket angezeigt.

                              Swen

                              Kommentar

                              Lädt...
                              X