• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zeilenumbruch bei zulangem Wort

Status
Für weitere Antworten geschlossen.

Durek

Neues Mitglied
hallo,
ich suche etwas, was mir einzelnen WÖrtern (also, wo kein Leerzweichen drinsteckt) bei einer bestimmten Wortlänge einen Zeilenumbruch macht.

haaaaaaaaaaaaaallooooooooo wie gehts euch?

müsste also zu bspw.

haaaaaaaaaaaaaall<br>ooooooooo
wie gehts euch?

werden (bei Leerzeichen macht der ja automatsich einen Zeilenumbruch)

ich hatte schon eine Funktion benutzt aber die macht dann ab einer Zeilenlänge der ganzen Variable dann einen Zeilenumbruch also auch bei kleinen Wörtern zwischendrin..

bspw.

wie gehts eu
ch?

naja ich hoffe ihr versteht was ich meine ;D
 
Was hälst du von wordwrap (PHP: wordwrap - Manual)? Aber vermutlich ist das die funktion die du schon gefunden hast.

Sonst gibt es dafür keine vorgefertigten funktionen.

Du könntest es so machen:
PHP:
$long_words = 'viele langeeeeeeeeee woerteeeeeeeerrrrr!';
$short_words = '';
$wrap_width = 10;
$break_char = '\n';
$word_delim = ' ';
// Jedes wort testen.
foreach(explode($word_delim, $long_words) as $word_num => $word)
{
  // Wort trennzeichen einfügen
  $short_words .= $word_delim;

  // Wenn das wort länger als erlaubt ist.
  if(strlen($word) > $wrap_width)
  {
    // Solange das wort stückeln bis es passt.
    while(strlen($word) > $wrap_width)
    {
      $short_words .= substr($word, 0, $wrap_width);
      $word = substr($word, $wrap_width);
      if(strlen($word) > $wrap_width)
        $short_words.= $break_char;
    }
  }
  // Sonst einfahc anhängen
  else
  {
    $short_words .= $word;
  }
}

Nur so als ansatz, ist nicht getestet.
 
du kannst es ja mal mit regex versuchen... man muss natürlich etwas schätzen, wie lang die wörter maximal werden... rechnen mit einfach mal mit max 1000 zeichen und wort länge maximal 50 zeichen

[noparse]/[\w$-.+!*'()@:?=&/;:]{51,1000}/i[/noparse]

sind zwar nicht alle zeichen drinne aber man tut was man kann ;) und ich lerne ja noch ^^
 
Ich kenn das so:
PHP:
$str = preg_replace('/\S{60}/', '\0 ', $str);
 
Also erstmals danke an euch alle und ich werde es testen ;D Ich werde mein Ergebniss mit einem Edit bekannt geben.

edit: Das von Prophet ist der Hammer :D Jetzt fehlt nurnoch 1... nach den 10 Zeichen verschwindet der Teil des Wortes und es entsteht kein Zeilenumbruch mit dem rest des Wortes =/ was bedeutet es eig., wenn bei der Variablenbezeichnung $variable.= wert; da steht? also mit dem punkt mein ich...
 
Zuletzt bearbeitet:
Dadurch hängst du eine andere zeichen kette an.

ach so ist das o0 also nach der Variable sozusagen dranhängen? cool danke^^

PS: hast du zufälligg eine Antwort darauf, wie ich das Wort aufteile, sodass es in der nächsten zeile dann erscheint?
 
Zuletzt bearbeitet:
Code:
$variable .= '<br />';
Vielleicht ein HTML Zeilenumbruch einbinden ???
 
ja, aber irgendwie funzt das ja nicht ausserdem soll das abgeschnitte auch noch nach dem Umbruch stehen.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben