Michael Bieri: Forum: Zeilenumbruch

Hallo

Ich bin grad am programmieren eines Forums. Problem: Die Zeilenumbrüche. Der Benutzer gibt seinen Text in eine Textarea ein, dieser wird dann in eine MySQL Datenbank eingelesen. Wenn der Benutzer nun aber sehr lange Texte ohne Umbrüche eingibt, werden die Zeilen einfach uuunglaublich lange.

Zur HTML-Formatierung:

<pre>

<?php

ech "$textdesbenutzers";

?>

</pre>

Wenn ich das <pre> weglasse, dann wird zwar mein obiges Problem gelöst, doch dann werden die manuell eingegebenen Zeilenumbrüche natürlich vom Browser nicht mehr interpretiert...
Jetzt hab ich einfach den Text nach 60 Zeichen gekappt mit chunk_split, doch das Problem: Wörter etc. werden GNADENLOS getrennt...
Wie lös ich das?

Gruss

Michael

  1. Hallo Michael!

    Am besten Du ersetzt die Zeilenumbrüche durch <br>. Dann bleibt der Rest Fließtext und die von Benutzer eingegebenen Zeilenumbrüche sind auch da. Die langen Zeilen im Quellcode brauchen Dich nicht zu stören ...

    also

    print (str_replace("\n", '<br>', $textdesbenutzers));

    mfg

    norbert =:-)

    Hallo

    Ich bin grad am programmieren eines Forums. Problem: Die Zeilenumbrüche. Der Benutzer gibt seinen Text in eine Textarea ein, dieser wird dann in eine MySQL Datenbank eingelesen. Wenn der Benutzer nun aber sehr lange Texte ohne Umbrüche eingibt, werden die Zeilen einfach uuunglaublich lange.

    Zur HTML-Formatierung:

    <pre>

    <?php

    ech "$textdesbenutzers";

    ?>

    </pre>

    Wenn ich das <pre> weglasse, dann wird zwar mein obiges Problem gelöst, doch dann werden die manuell eingegebenen Zeilenumbrüche natürlich vom Browser nicht mehr interpretiert...
    Jetzt hab ich einfach den Text nach 60 Zeichen gekappt mit chunk_split, doch das Problem: Wörter etc. werden GNADENLOS getrennt...
    Wie lös ich das?

    Gruss

    Michael

    1. Hallo norbert,

      print (str_replace("\n", '<br>', $textdesbenutzers));

      dafür gibt es eine Funktion: nl2br() ->(http://www.php.net/nl2br)
      besser dürfte aber sowas sein:
      $txt = preg_replace("/(\015\012)|(\015)|(\012)/","<br />",$txt);
      (warum steht auf der verlinkten Seite in dem Kommentar von CK1)

      Hallo

      +ein TOFU ->http://learn.to/quote

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|