[HTML/PHP] Langen-Zusammenhängender Text in mehrere Zeilen ausgeben

Allo

Lt. Commander
Registriert
Feb. 2004
Beiträge
1.064
Schönen guten Tag,

ich möchte einen Text in einer Tabelle ausgeben lassen. Leider ist da das Problem, das die Tabelle nur 250 Pixel lang ist. Die Texte können aber bis zu 255 Zeichen lang sein!

Wenn ich also dann den 255 Zeichen langen Text in der Tabelle ausgebe, dann werden die ganzen 255 in einer Zeile ausgegeben und das sieht ja wohl sch…lecht aus.

Von mir aus kann es auch ein php Script sein, welches immer ein „<br>“ nach ~40 Zeichen
macht.

Ja, im Internet habe ich keine Hilfe über dieses - eigentlich nur auf den ersten Blick - leichte Problem gefunden.
 
Wenn du der Tabelle eine feste Breite zuweist, wird der Text doch automatisch umgebrochen?
 
value schrieb:
Wenn du der Tabelle eine feste Breite zuweist, wird der Text doch automatisch umgebrochen?
Nein, wenn es sich um eine zusammenhängende Zeichenkette handelt wird der Text leider nicht unterbrochen.
Du könntest aber, jenachdem wofür du es verwenden möchtest, dazu ein Textfeld erstellen, indem der Umbruch dann erzwungen wird.

Beispiel:
HTML:
<textarea name="textfield" cols="20" wrap="VIRTUAL">DiesIstDerTextDerAutomatischUnterbrochenWird;)</textarea>
MfG mh1001
 
Zuletzt bearbeitet:
Mit <wbr> kannst du eine Position bestimmen, an der der Text umgebrochen werden kann also ein künstliches Wortende bestimmen ohne das ein Zeichen eingefügt wird.
 
Code:
function splitChars($oldVar)
{
 $anzChars=40;
 for ($x=0;$x<ceil(strlen($oldVar)/$anzChars);++$x)
  $newVar.=substr($oldVar,$x*$anzChars,($x+1)*$anzChars)."<br>";
 return $newVar;
}
So müsste es funktionieren, aber es gibt bestimmt noch ne einfachere Möglichkeit. :)
 
Zuletzt bearbeitet:
ja, es gibt eine möglichkeit:
PHP:
echo chunk_split($text,40,"<br>");

aber ich habe vergessen zu erwähnen, dass der Text so ein Text ist wie man ihn üblich schreibt.
Obiger Befehlt gibt folgendes aus:

PHP:
'
Schoenen guten Tag, ich möchte einen T
ext in einer Tabelle ausgeben lassen. Le
ider ist da das Problem, das die Tabelle
 nur 250 Pixel lang ist. Die Texte könne
n aber bis zu 255 Zeichen lang sein! Wen
n ich also dann den 255 Zeichen langen T
ext in der Tabelle ausgebe, dann werden 
die ganzen 255 in einer Zeile ausgegeben
 und das sieht ja wohl sch…lecht aus. Vo
n mir aus kann es auch ein php Script se
in, welches immer ein br nach +40 Zeiche
n macht. Ja, im Internet habe ich keine 
Hilfe über dieses - eigentlich nur auf d
en ersten Blick - leichte Problem gefund
en.

Ließt sich holbrig :rolleyes:

das script müsste 40 zusammenhängende Zeichen splitten, jedoch nicht solche, die mit einem Lehrzeichen getrennt sind.
 
bei nem text mit leertasten kanst du das ganz einfach mit style="table-layout:fixed;" ner tabelle verklickern, dass die breite eingehalten werden soll, in der zelle selber musst du dann noch die genaue breite angeben und fertig

also ca. so
HTML:
...
<table style="table-layout:fixed; ..." ...>
 
... normales design und so...
 
<td style="width:50px;">
Deinen Text
</td>
 
...
 
</table>
 
Zuletzt bearbeitet:
V1tzl1 schrieb:
bei nem text mit leertasten kanst du das ganz einfach mit style="table-layout:fixed;" ner tabelle verklickern, dass die breite eingehalten werden soll, in der zelle selber musst du dann noch die genaue breite angeben und fertig

also ca. so
HTML:
...
<table style="table-layout:fixed; ..." ...>
 
... normales design und so...
 
<td style="width:50px;">
Deinen Text
</td>
 
...
 
</table>
Das schneidet aber den Text rechts ab.

@ Allo:
Krass, dafür gibts ja ne PHP-Funktion. :)
 
Zuletzt bearbeitet:
Sicher auch bei ausreichendem Platz nach unten und vernünftig eingestelltem Zeilenumbruch
 
V1tzl1 schrieb:
Sicher auch bei ausreichendem Platz nach unten und vernünftig eingestelltem Zeilenumbruch
Wenn du ein Wort hast, das länger als z.B. 40 Zeichen ist und somit nicht mehr umgebrochen wird, weil es länger als der Platz im Table ist, wird der Table normalerweise verbreitert. Mit table-layout:fixed wird der Table zwar nicht mehr verbreitert, jedoch wird das Wort dann einfach rechts abgeschnitten, da es ja nicht umgebrochen werden kann.
 
ja logisch, aber welches wort is bitte länger als 40 Zeichen ?
 
Ich programmiere ein Onlinespiel (siehe Sig).
Da einige Spieler das Unmöglichste schaffen müssen oder einfach das layout verschandeln wollen ist diese Vorkehrung notwendig.
 
Tjoah, dann wür ich es nen bissel umständlicher angehen und den gesammten inhalt in als Array ausnehmen und das dann überprüfen
 
Wenn es nur um Namen in einem Onlinerollenspiel geht, warum baust du dann nicht einfach eine Begrenzung der Namenslänge ein?
Schneidest die Namen einfach nach meinetwegen 40 Zeichen ab und freust dich nen Keks, dass somit die obrige Lösung geht (zumal solange Nicknames wohl auch keinen Sinn mehr ergeben)

mfg
 
Ich glaube er meint, dass sich Spieler in einem online Spiel Nachrichten schicken können, ohne das design zu sprenge, desshalb würd ich jedes wort mit nem array überprüfen, ob es länger als 40 Zeichen ist und es dann trennen...
 
Zurück
Oben