"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

php: automatischer Zeilenumbruch

Spikx 23.01.2005 - 14:08 1362 21
Posts

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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).
Bearbeitet von Spikx am 23.01.2005, 23:14

CROWLER

Powerbunny
Avatar
Registered: Nov 2000
Location: aufWean
Posts: 1893
(afaik) wenn du den text in einem <td> ausgibst, wird der text automatisch umgebrochen

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12072
Serverseitig is da nicht allzu viel zu machen.... die CSS-Property "overflow:" solltest du dir aber mal anschaun.

CROWLER

Powerbunny
Avatar
Registered: Nov 2000
Location: aufWean
Posts: 1893
$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

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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.
Bearbeitet von Spikx am 23.01.2005, 14:22

CROWLER

Powerbunny
Avatar
Registered: Nov 2000
Location: aufWean
Posts: 1893
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

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Zitat von CROWLER
ich hoffe es hat geholfen
naja, nicht ganz

CROWLER

Powerbunny
Avatar
Registered: Nov 2000
Location: aufWean
Posts: 1893
weil ?

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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

Powerbunny
Avatar
Registered: Nov 2000
Location: aufWean
Posts: 1893
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

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4453
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

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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)
Bearbeitet von watchout am 23.01.2005, 18:39
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz