Lange Wörter splitten.

Danielku15

Erfahrenes Mitglied
Hi Leute.
Ich hab ein kleines Problem. In meiner Shoutbox kommt es oft dazu dass ein zu langes Wort oder eine URL den I-Frame sprengt und man nach rechts scrollen muss um alles zu lesen. Ich hab bereits eine Funktion gefunden um zu lange Wörter zu Splitten.Das Problem ist folgendes. Ich behandle den Text zuvor mit htmlentities, trim, nl2br und wordwrap. Wenn jetzt einer viele Umlaute oder Zeichen nacheinander macht z.b. (nöööööööööööö). Dann kann es vorkommen dass während &ouml; Getrennt wird: &ou<br>ml; Wie mach löse ich das am besten? Ich habe ebenfalls BBCodes drinnen. Da kommt es auch schon mal vor dass aufs versehen [B<br>]Fett[/B] geschrieben wird. Hier meine Funktion:

PHP:
function short_words($text, $length = 50) {
  $words = explode(" ",$text);
  $count_w = count($words)-1;
  if($count_w >= 0) {
    for($i=0;$i<=$count_w;$i++) {
      if(strlen($words[$i])>=$length) {
      $words[$i] = chunk_split($words[$i], $length,"<br>");
      $length = strlen($words[$i])-5;
      $words[$i] = substr($words[$i],0,$length);
      }
    $text = implode(" ",$words); 
    }
  } 
   else {
      $text = chunk_split($text,$length,"<br>");
   }
  return $text;
}

gruß daniel
 
PHP:
<?php
function short($Text,$Zeichen) {
$zaehl=0;
for ($cou=0; $cou<strlen($Text); $cou++) {
if (substr($Text, $cou,1)==" ")
$zaehl=0;
else
$zaehl++;
if ($zaehl>$Zeichen) {
$Text=substr($Text, 0, $cou)."<br>".substr($Text, $cou, strlen($Text));
$cou=$cou+3;
$zaehl=0;
} }
return $Text;
}
?>

Dann per:
PHP:
echo short('nöööö','4');
aufrufen!

MfG

Edit: Wo hab ich denn den jetzt ausgegraben?
 
emptynick hat gesagt.:
Edit: Wo hab ich denn den jetzt ausgegraben?

Ich denke mal du meinst den Post. Ja das Thema ist uhralt :D (Über ein Jahr), Ist natürlich schon überfällig. Aber falls jemand das selbe Problem hat bringts ja was :) Konnte das Script noch nicht testen. Weiß aber auch nicht wie meine Shoutbox damals aussah (vom Coding her)

gruß Daniel
 
Zurück