automatischer zeilenumbruch...

Das mit dem abgeschnittenem buchstaben warn fehler von mir, is beseitigt.
So - ich war davon ausgegangen, dass dein input feld keine textarea ist ;) egal das lässt sich ändern.

Nun meine Frage: gibts nen befehl für das suchen eines bestimmten zeichens ? wenn das zeichen gefunden, dann true sonst false - das wäre ideal

Grüße, Morph
 
...

Mein feld ist auch keine Textarea, sondern ein kleines input feld, doch man kann 100 Zeichen posten (geregelt durch maxlength="100"), und die stehen dann eben nicht in einer Zeile, sondern in mehreren Zeilen, weil eine Zeile ja nur 13 Zeichen breit ist :)

bye
 
:-) Hab jetzt gesehn was du meinst - wenn er einmal getrennt hat, dann schaut er nichtmehr, ob der 2te abschnitt des wortes oder allgemein dann länger is als 13 zeichen :)
So zum suchen nehm ich ma ereg() ... hab nix besseres gefunden (bin grad am zusammenkleistern ;))

Grüße, Morph
 
PHP:
<?php

echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\" color=\"#000000\">";

$erg = ereg (" ", $text);

if ($erg)
{
	$text_exp = explode(" ", $text);
	$count = count($text_exp);
        $ok = true;
} else {
	$count = 1;
	$text_exp = $text;
        $ok = false;
}


// $text = der komplette eingegebene text eines users
$text_exp = explode(" ", $text);
$count = count($text_exp);

for ($i=0; $i < $count; $i++)
{
    $laenge = 0; // Var leeren
    $laenge = strlen($text_exp[$i]); // länge des strings zählen
    
    if ($laenge > 13) // 13 = max länge eines wortes
    {
        $teilen = substr ($text_exp[$i], "0", "12");
        // 12 = max länge eine wortes -1,
        // da ja noch ein bindestrich angehangen wird
        $teilen .= "-<br>";
        $teilen .= substr ($text_exp[$i], "13", $laenge);
        // 13 = nach dem anhängen des bindestrichs und
        // des zeilenumbruchs wird das restliche wort gespeichert
        $text_exp[$i] = $teilen;
    }
}
// fügt die einzelnen Wörter (hier in arrays) wieder
// zusammen und fügt nach jedem neuen wort ein leerzeichen ein
$text_gesamt = implode (" ", $text_exp); 

if ($ok)
{
	$text_gesamt = implode (" ", $text_exp); 
} else {
	$text_gesamt = $text_exp;
}

echo $text_gesamt;
echo "</font>";
?>
Bin heut echt zu doof das richtig hinzubekommen :(
Sorry blubber, aber ich versuchs morgen wieder - heut nützts nichts mehr *snief*

Grüße, Morph
 
Ähm... also... ich will jetzt nicht deine ganze Arbeit zunichte machen, Morph, aber... na ja... da gibt's tatsächlich eine Funktion, die das übernimmt ;)
PHP:
<?
$print[txt] = wordwrap($print[txt], 13, "<br>", 1);
?>

HTH


reima

PS: Ich finde, dass das nicht gerade die ultimative Lösung für das anfangs erörterte Problem darstellt... Das müsste schon irgendwie mit CSS machbar sein. Denn wenn du nicht mit einer Schriftart arbeitest, bei der alle Zeichen die gleiche Breite haben, sieht das schnell blöd aus... einmal steht da z.B.
iltiskillerhe
lfer
[und in der nächsten Zeile]
mopedvergaser
anschluss
(Komische Wörter, ich weiß ;))
Die erste Zeile hat jeweils 13 Zeichen. Und vom Augenmaß her müsste das 'lfer' locker noch in die Zeile darüber reinpassen. Das wird aber abgetrennt, weil sonst mehr als 13 Zeichen in einer Zeile stehen würden. Tja... Aber wenn du damit leben kannst ;)
 
..

ich hab nochmal bei den css funktionen nachgeschaut, aber ausser diese funktionen

<span style="word-break:break-all;word-wrap:break-word">

habe ich nichts gefunden, was annähernd passen könnte. Das mit der Wortlänge von 13 Zeichen soll ja nur ein Schutz sein gegen Leute die meinetwegen "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" posten würden, und es dann die Tabelle verschiebt. Sooo oft kommen Wörter, die länger als 13 Zeichen sind ja auch net vor, und dann macht er ja sowieso automatisch die umbrüche (is ja von html aus so).

Aber wie gesagt, sollte es doch eine perfekte Lösung geben (evtl doch via css), würd ichs gern versuchen :)

Mit deinem geschilderten problem, reima, haste schon recht. Doch mit den mir bekannten css styles siehts ja auch net grad besser aus, eher schlechter. Da haut er ja nach jedem Wort am Ende einen Umbruch rein und trennt das Wort ab, egal obs nun kleiner ist als 13 Zeichen oder nicht.

Und wenn ein T
ext dann so au
ssieht wie hie
r, ist das opt
isch auch nich
t gerade sehr g
ut

:)

bye
 
reima hat gesagt.:
Ähm... also... ich will jetzt nicht deine ganze Arbeit zunichte machen, Morph, aber... na ja... da gibt's tatsächlich eine Funktion, die das übernimmt ;)
Arbeit zunichte machen ? Och wieso - mit jedem Script was ich schreibe gewinne ich an Erfahrung die mir keiner mehr nehmen kann - also von daher empfinde ich so etwas als gewinn und nicht als "Arbeit zunichte machen" ;)
Außerdem thx, die Funktion kannte ich noch nicht :)

@ Blubber: haste das prob mit Reima's code gelöst bekommen ?

Grüße, Morph
 
hi morph

...nicht wirklich, ich weiss nichtmal, was die funktion machen soll :)

den Code, den du gestern gepostet hast, ist das der fertige? Wenn nicht, poste bitte den fertigen code, dann probier ichs :)

bye
 
Zurück