automatischer zeilenumbruch...

Ich bin dabei den Code umzuschreiben - ich versuch mal möglichst schnell fertig zu werde (hab noch n bissl was anderes zu coden :))
Ich beeil mich

Grüße, Morph
 
PHP:
<?php

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

// $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 > 12) // 13 = max länge eines wortes
    {
        $teilen = substr ($text_exp[$i], "0", "12");
        // 12 = max länge eine wortes
        $teilen .= "-<br>";
        $teilen .= substr ($text_exp[$i], "12", $laenge);
        // 12 = 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); 

echo $text_gesamt;
echo "</font>";
?>
Das funzt 100 pro. Nur das problem ist, dass ich bei dem kürzen eines wortes mit z.b. 100 zeichen ohne leerzeichen dazwischen nichtmehr weiterkomme :(
Ich hänge mal die "probe" an, vielleicht erbarmt sich ein mod oder sogar reima (ein raunen geht durch die hallen) dazu, dir zu helfen :)

Vielleicht fällt mir noch was ein, wie ich das richtig hinbekomme, laube aber im mom nicht dran - sry :(

Grüße, Morph
 

Anhänge

....

Hi,

ok, erstmal danke für deine Bemühungen !!! :)
Was du jetzt damit meinst, hab ich allerdings nicht ganz verstanden:

"Nur das problem ist, dass ich bei dem kürzen eines wortes mit z.b. 100 zeichen ohne leerzeichen dazwischen nichtmehr weiterkomme"

bye
 
nachtrag:

Jup, hab grad das Script von dir probiert, geht astrein. Jetzt weiss ich glaub auch was du gemeint hast, dass es noch nicht funktioniert:
Ein Wort, das länger als 2 Zeilen ist, wird nicht mehrmals getrennt sondern nur einmal.

Aber sonst ist das Script echt cool, danke nochmals.

..und vielleicht kann ja sogar doch noch einer das angesprochene Problem beseitigen...!? :)

bye
 
bitte bitte ...
Kommt Leutz, helft blubber dochmal - besonders die mods: sollte doch nur ne fingerübung für euch sein :-)

Grüße, Morph
 
Hab das mal nach meiner Art gemacht:
PHP:
function wrap($text, $length)
{
	$x = 0; $i = 0; $zeile[0] = "";	
	while ($i<strlen($text)) 
	{
		$word_len = strpos($text, " ", $i+1) - $i;		
		if ($word_len <= 0) $word_len = strlen($text) - $i;
		if (($word_len + $x) <= $length) {
			$zeile[count($zeile)-1] .= substr($text, $i, $word_len);
			$x += $word_len; $i += $word_len;
		}
		elseif ($x == 0) {
			$zeile[count($zeile)-1] = substr($text, $i, $length);
			$zeile[] = "";
			$i += $length;
		}
		else {
			$zeile[] = "";
			$x = 0;	$i++;
		}
	}	
	return implode("<br>", $zeile);
}


$text = wrap($text, 13);

Konnte das ganze auf die Schnelle nicht so extensiv testen, für Trivialfälle funktioniert es recht gut... den Rest überlasse ich euch ;)
Die Funktion macht jetzt so ziemlich das selbe wie wordwrap(), aber man kann halt kleine Anpassungen und Extras einbauen... Wenn du z.B. Trennstriche willst oder so, oder ihr einen Bug findet, dann sagt es einfach ;)


reima


PS:
Ich hänge mal die "probe" an, vielleicht erbarmt sich ein mod oder sogar reima (ein raunen geht durch die hallen) dazu, dir zu helfen :)
Bin ich wirklich schon so berühmt-berüchtigt hier? ^^ ;-)
 
Zuletzt bearbeitet:
das ist im prinzip genau das was ich mal gesucht hatte.. nur noch ein problem hab ich, falls der user nun eine url eingegeben hat wird diese ja auch "gesplittet" und funktioniert nicht mehr, wie ergänzt man die funktion am besten das der urls erkennt, den "sichtbaren" text am besten kürzt und den "link" in ruhe lässt
 
hi reima,

..ich hab da noch ein ganz anderes Problem, wie bau ich die funktion nun ein? :) (ich kenn mich mit funktionen überhaupt net aus)

also meine "standard-zeile" zur ausgabe des textes momentan sieht so aus:
font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000<?=$print[txt]?></font>



Wenn du z.B. Trennstriche willst oder so...

*will :)

bye
 
Hi blubber,
wurde dein Prob gelöst? Wenn ja, wie? Ich habe dasselbe Prob mit meiner Shoutbox.

NACHTRAG:
Also das mit dem Wordwrap haut bei mir net hin, dann werden meine Smilies einfach gekillt! :(
 
Zuletzt bearbeitet:
Zurück