Fabian Transchel: Zeilenumbrüche erzwingen

Hallo Forum,
beim Programmieren eines <duck>Boards</duck> bin ich auf folgendes (ich verstehe, wenn ihr die Hilfe verweigert *g*) Problem gestoßen:
Wenn eine Zeichenkette _ohne_ white-space länger als der anzeigebereich ist, so wird sie nicht umgebrochen, das wirkt sich in meinem beispiel allerdings sehr unschön aus.
wie kann ich erzwingen, dass bei z.B. 500px (oder eben beim erreichen des festgelegten elementendes) umgebrochen wird? ich wählte den Themenbereich PHP, da ich denke, dass da was mit RegExp zu machen sein wird, weil ich auch für CSS nichts gefunden habe ausser overflow:, was nicht viel schöner wird. Allerdings habe ich keine ahnung von RegExp, deswegen frag ich mal...

Fabian

  1. Aloha!

    Wenn eine Zeichenkette _ohne_ white-space länger als der anzeigebereich ist, so wird sie nicht umgebrochen, das wirkt sich in meinem beispiel allerdings sehr unschön aus.

    Lies bei http://www.php.net die Beschreibung der Funktion wordwrap(), und insbesondere die Anmerkungen dazu. Dein Problem wird dort mit ziemlicher Sicherheit behandelt.

    - Sven Rautenberg

    1. Aloha!

      moin!

      Wenn eine Zeichenkette _ohne_ white-space länger als der anzeigebereich ist, so wird sie nicht umgebrochen, das wirkt sich in meinem beispiel allerdings sehr unschön aus.

      Lies bei http://www.php.net die Beschreibung der Funktion wordwrap(), und insbesondere die Anmerkungen dazu. Dein Problem wird dort mit ziemlicher Sicherheit behandelt.

      ja... das ist schön und gut... aber wie kann ich damit verhinder, dass mir meine schönen HTML-Quelltexte so zerschnippelt werden, dass z.B. Grafiken nicht mehr funktionieren ? (sprich so was dabei rauskommt: <img src="...<br />..." alt="" />)

      Fabian

      1. Aloha!

        ja... das ist schön und gut... aber wie kann ich damit verhinder, dass mir meine schönen HTML-Quelltexte so zerschnippelt werden, dass z.B. Grafiken nicht mehr funktionieren ? (sprich so was dabei rauskommt: <img src="...<br />..." alt="" />)

        Dann wirst du dir wohl oder übel etwas ausdenken müssen, um die Grafiken entweder erst später in den Text einzusetzen, oder du entfernst sie temporär aus dem Text. Und außerdem sehe ich gar keine Gefahr: Ein <img>-Tag enthält doch in aller Regel Leerzeichen - das sollten einige wordwrap()-Ersatzfunktionen erkennen und das Tag in Ruhe lassen. Alternativ könnte das Vorkommen von "<" und ">" dafür sorgen, dass dazwischen nicht umbrochen wird.

        Im Prinzip benötigst du eine Funktion, welche etwa 40 Zeichen lange Teilstrings, die kein Leerzeichen enthalten, auftrennen. Sowas gibts dort in den Kommentaren. Lies sie. Passe die dortigen Lösungen deinen Anforderungen an. Und wenn's dann immer noch nicht geht, poste Teststring und Quellcode deiner Funktion zusammen mit einer Problembeschreibung.

        - Sven Rautenberg

        1. hi

          ja... das ist schön und gut... aber wie kann ich damit verhinder, dass mir meine schönen HTML-Quelltexte so zerschnippelt werden, dass z.B. Grafiken nicht mehr funktionieren ? (sprich so was dabei rauskommt: <img src="...<br />..." alt="" />)

          Dann wirst du dir wohl oder übel etwas ausdenken müssen, um die Grafiken entweder erst später in den Text einzusetzen, oder du entfernst sie temporär aus dem Text. Und außerdem sehe ich gar keine Gefahr: Ein <img>-Tag enthält doch in aller Regel Leerzeichen - das sollten einige wordwrap()-Ersatzfunktionen erkennen und das Tag in Ruhe lassen. Alternativ könnte das Vorkommen von "<" und ">" dafür sorgen, dass dazwischen nicht umbrochen wird.

          jepp, hab es so hingebogen, dass die Grafiken _danach_ eingefügt werden, das ganze ist allerdings dermaßen ineffizient, dass ich das Teil nochmal schreiben werde. Danke.

          Fabian

  2. Hi,
    hilft das?
    http://www.netzwelt.com/selfhtml/html/text/zeilenumbruch.htm#erlauben
    Grüße
    Heike

    1. hi heike

      hilft das?
      http://www.netzwelt.com/selfhtml/html/text/zeilenumbruch.htm#erlauben

      nicht wirklich... denn <wbr> ist afaik nicht in XHTML 1.1 vorhanden...
      aber Svens Antwort hilft mir schon weiter.

      Fabian