php: automatischer Zeilenumbruch

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_automatischer_zeilenumbruch_135157/page_1 - zur Vollversion wechseln!


Spikx schrieb am 23.01.2005 um 14:08

Suche eine einfache Möglichkeit in einem String automatisch ein space oder was auch immer einfügen zu lassen, wenn ein Wort eine gewisse Buchstabenanzahl überschreitet (zB für Gästebücher, wenn irgendwelche bösen Menschen laaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaange Wörter eingeben, die das html Konstrukt beeinflussen könnten).


CROWLER schrieb am 23.01.2005 um 14:13

(afaik) wenn du den text in einem <td> ausgibst, wird der text automatisch umgebrochen


Spikx schrieb am 23.01.2005 um 14:16

Zitat von CROWLER
(afaik) wenn du den text in einem <td> ausgibst, wird der text automatisch umgebrochen
nope (außer man muss dafür irgendwas bestimmtes angeben, aber i habs an allen möglichen Stellen mit width= und width: ausprobiert)


COLOSSUS schrieb am 23.01.2005 um 14:17

Serverseitig is da nicht allzu viel zu machen.... die CSS-Property "overflow:" solltest du dir aber mal anschaun.


CROWLER schrieb am 23.01.2005 um 14:18

$text = wordwrap($text,"<br>",100,1);
Die Funktion bricht in jedem Fall(1) nach 100 zeichen um. Wenn du die 1 weglässt schreibt er ein Wort was dann noch über die 100 Zeichen hinausgeht aus und bricht dann erst um.

das is nicht auf meinem mist gewachsen :
quelle :
http://www.coding-board.de/board/ar...php/t-5030.html


Spikx schrieb am 23.01.2005 um 14:19

Zitat von COLOSSUS
Serverseitig is da nicht allzu viel zu machen.... die CSS-Property "overflow:" solltest du dir aber mal anschaun.
ja, kenn ich natürlich. Is aber net wirklich das Wahre, funktioniert außerdem bei Tabellen nicht (fall's man es dort brauchen würde).
Wieso soll da serverseitig nicht viel zu machen sein? I könnt mir ja ganz einfach a Funktion schreiben, die die chars zählt und des dann entsprechend einbaut, aber i will net schon wieder das Rad neu erfinden :)
Zitat von CROWLER
$text = wordwrap($text,"<br>",100,1);
Die Funktion bricht in jedem Fall(1) nach 100 zeichen um. Wenn du die 1 weglässt schreibt er ein Wort was dann noch über die 100 Zeichen hinausgeht aus und bricht dann erst um.
Aah, thx, kannte ich nicht. Allerdings is es auch nicht ganz des was ich suche, da des nicht nur lange Wörter abtrennt sondern generell den ganzen String.


CROWLER schrieb am 23.01.2005 um 14:21

Zitat von Spikx
ja, kenn ich natürlich. Is aber net wirklich das Wahre, funktioniert außerdem bei Tabellen nicht (fall's man es dort brauchen würde).
Wieso soll da serverseitig nicht viel zu machen sein? I könnt mir ja ganz einfach a Funktion schreiben, die die chars zählt und des dann entsprechend einbaut, aber i will net schon wieder das Rad neu erfinden :)aah, thx, kannte ich nicht.

ich hoffe es hat geholfen


Spikx schrieb am 23.01.2005 um 14:30

Zitat von CROWLER
ich hoffe es hat geholfen
naja, nicht ganz


CROWLER schrieb am 23.01.2005 um 14:31

weil ?


Spikx schrieb am 23.01.2005 um 14:34

Zitat von CROWLER
weil ?
Zitat von Spikx
Allerdings is es auch nicht ganz des was ich suche, da des nicht nur lange Wörter abtrennt sondern generell den ganzen String.


CROWLER schrieb am 23.01.2005 um 14:35

also bei dem newsscript das ich vor langer zeit mal geschrieben hab werden die zeilen automatisch umgebrochen

http://www.s2kdesign.net/20/index.php


Spikx schrieb am 23.01.2005 um 14:39

Jo.. eh.. aber laut Beschreibung auf php.net bricht des eben nicht nur lange Wörter im String um, sondern zählt alle chars inklusive Spaces im String und bricht dort um. Was natürlich kontraproduktiv ist, wenn man den automatischen Umbruch vom Browser verwenden möchte (und lange Wörter werden eben net vom Browser umgebrochen, no na).


Rektal schrieb am 23.01.2005 um 18:14

Fuer Serverseitig muss das etwas "gschickter" angegangen werden. Ich hab letztens den Text nach Woertern gesplittet und bei langen Woertern dann einen Umbruch eingefuegt.


Spikx schrieb am 23.01.2005 um 18:29

Zitat von Rektal
Fuer Serverseitig muss das etwas "gschickter" angegangen werden. Ich hab letztens den Text nach Woertern gesplittet und bei langen Woertern dann einen Umbruch eingefuegt.
ja so stell ich mir das auch vor. Man könnte zB einfach explode dafür nehmen, allerdings.. wenn man jetzt nach spaces exploded, bleiben Wörter, die nur durch '\n' getrennt sind trotzdem noch ein Wort.


watchout schrieb am 23.01.2005 um 18:36

mach ne regexp:
preg_replace("/(\w{100,})/e","wordwrap('\\1',' ',100,1)");

sollte das Problem eigentlich lösen ;)

edit:hatte vergessen den wrap-char reinzuschreiben ;)
merkt euch bitte dass man den umbruch in solchen fällen nicht ERZWINGEN (mit <br />;) sollte, sondern ihn nur ERMÖGLICHEN sollte (durch eine Trennung durch ein leerzeichen)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026