Maximale Wortlänge überprüfen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
attribut
bearbeitung
buchstabe
code
container
empfehlen
http
jemand
leute
mache
problem
punkt
schreiber
setzen
string
tag
text
url
verwenden
zeichen
-
Hallo tag/leute">Leute,
Ich habe oder will auf meiner Seite ein funktionierendes Gästebuch.
Dabei ist mir jedoch aufgefallen, dass wenn die Leute ohne Leerzeichen eine ganz lange Zeichenkette eingeben, dass dann mein Design gesprengt wird (die Breite passt dann nicht mehr).
Weiß jemand, wie ich dafür sorgen kann, dass Wörter, die zu lange sind, z.b. nach maximal 25 Zeichen getrennt werden? (wahrscheinlich eher mehr als 25.)
Vielen Dank im Voraus
Bildungslücke -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
http://www.phpforum.de/archiv_4421_Zeilenumbruch@erzwingen_anzeigen.html
da hatte jemand dasselbe Problem...^^
der Chunk-Split ist nur bedingt empfehlenswert^^
aber auch machbar^^ -
sebulon schrieb:
http://www.phpforum.de/archiv_4421_Zeilenumbruch@erzwingen_anzeigen.html
da hatte jemand dasselbe Problem...^^
der Chunk-Split ist nur bedingt empfehlenswert^^
aber auch machbar^^
Zerschneidet es mir dann den Quellcode nach 90 ZEichen oder zu lange Wörter?
Ich will nämlich nicht, dass dann sowas wie
<br
/>
Rauskommt! -
der chunk zerhackt die zeichen... deswegen schrieb ich, dass es nciht empfehlenswert ist^^
aber was sind denn das für Zeichenketten? setzen die auch punkte oder sowas?
denn dann kannst du über ein Split auf die Punkte das machen...
und wieso sollte jemand in deinem Gästebuch HTML-Verwenden dürfen? würde ich dir aus sicherheitstechnischen Gründen nciht empfehlen... -
sebulon schrieb:
der chunk zerhackt die zeichen... deswegen schrieb ich, dass es nciht empfehlenswert ist^^
aber was sind denn das für Zeichenketten? setzen die auch punkte oder sowas?
denn dann kannst du über ein Split auf die Punkte das machen...
und wieso sollte jemand in deinem Gästebuch HTML-Verwenden dürfen? würde ich dir aus sicherheitstechnischen Gründen nciht empfehlen...
Nein, die dürfen kein HTML verwenden, aber ich mache mit nl2br() die \n zu einer neuen Zeile, also <br/>.
Deshalb wäre es schlecht, wenn dieses dann gesplittet werden würde.
in den Zeichenketten, (wie z.B. ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? )
GIbt es selten irgendwelche Punkte. Aber auch so etwas wie AAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ist nicht ungewöhnlich.
Deswegen suche ich nach einer Lösung.
GIbt es noch Alternativen? -
na, da musst du nix fürchten... der schreiber des textes muss nur fürchten, dass sein Strring zerhackt wird mitten im Wort... dein <br> erweiterst du ja nachträglich... du musst die String-Bearbeitung doch nur machen, wenn du den einliest und speicherst...
-
sebulon schrieb:
na, da musst du nix fürchten... der schreiber des textes muss nur fürchten, dass sein Strring zerhackt wird mitten im Wort... dein <br> erweiterst du ja nachträglich... du musst die String-Bearbeitung doch nur machen, wenn du den einliest und speicherst...
Es sieht aber wirklich nicht gut aus, wenn die Wörter mittendrin gekappt werden.
Wie machen die das eigentlich hier bei LC? -
blacktea schrieb:
overflow: hidden;
Damit geht nix kaputt
Schau mal hier nach:
http://bildungsluecke.lima-city.de/index.php?id_cat=gb&id_client=read&task_num=1
Da hab ich das auf die Mittelspalte angewendet, aber trotzdem will es nicht.
Was mache ich denn falsch?
EDIT:
HAbe die Einträge in einen Div getan und es hat funktioniert, vielen Dank.
Beitrag zuletzt geändert: 22.3.2010 19:34:28 von bildungsluecke -
Also very tricky wäre dann natürlich eine Variante, die ich einst in einem Chat den ich geschrieben hab verwendet habe, um Leute abzuwürgen, die meinen Buchstaben wären Rudeltiere und könnten nicht in kleinen Gruppen überleben: Es wird maximal 3 mal der gleiche Buchstabe hintereinander erlaubt. Ich hatte damals dafür eine function geschrieben - habe sie aber jetzt grad nicht zur hand. Aber so schwer ist es eigentlich nicht.
Prinzipiell habe ich damals den Text einfach durchsucht, (im lowercase) ob irgendwo Buchstaben 4-mal hintereinander vorkommen. Also praktisch über str_replace("aaaa", "aaa", strtolower($text)) usw. Die function dann in einer schleife so oft durchlaufen lassen, bis die function 0 zurück liefert und dann sind alla "AaaaaaaaaaaaAAaaahhhhhhhhhh!!!!!!!!!!" umgewandelt in "aaahhh!!!". Natürlich ist das so noch nicht ausgereift und eventuel gibt es einfachere Methoden, aber das Prinzip ist eventuell klar. Wo es dann halt nicht funktioniert ist dann "aaahhh!?!?!?!?!?!?!?!?!?!?!?!?!?".
Wenn ich den Code in den nächsten Tagen finde, hänge ich den hier mal an ^^ Ist vielleicht ein witziges Feature. Aber prinzipiell bleibt dann entweder die von sebulon vorgeschlagene Methode, oder halt das abschneiden via overflow. Wobei die Methode mit overflow hin und wieder hässliche Nebeneffekte haben kann.
Ansonsten würde ich halt vorschlagen,.den Code via split (" ", $text) in seine Wörter zu zerlegen, das Array durchzugehen und den Text neu aufzubauen. Also als kleines Beispiel:
(nur so auf die schnelle zusammen getippselt und nicht getestet)<?php function breakwords($text, $maxlen){ $stuecke = split(" ", $text); for($i=0; $i<sizeof($stuecke); $i++){ if(strlen($stuecke[$i] >= $maxlen)){ $result = $result . $substr($text, 0, $maxlen) . " "; $result = $result . $substr($text, $maxlen, strlen($stuecke[$i]) . " "; }else{ $result = $result . stuecke[i] . " "; } } return $result; } ?>
-
Wieso sollte das "overflow"-Attribut dafür geeignet sein?
Für genau solche Sachen wurde das "word-wrap"-Attribut geschaffen:
http://www.blooberry.com/indexdot/css/properties/text/wordwrap.htm
http://www.css3.com/css-word-wrap/ -
Lösungen über hidden sind echt doof. Ich denke auch das du nicht drum rum kommst eine eigene Funktion zu schreiben die eben das macht was du erwartest. es gibt über javascript die möglichkeit die zeichenlänge einer bestimmten schriftart in px auszulesen. somit weisst du wie lang etwas ist. tja und dann musst du nur gucken ob es ein sichtbares zeichen ist oder ob du gerade in einem html-tag oder bb-code bist.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage