cut_long_word oder wordwrap

Bitte erst das lesen!




echo nl2br(wordwrap ($text,30,' ',1));

Hallo,
ich habe öfters in meinem Gästebuch Einträge wie z.B. ein ellenlanges XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXx
Das ist ungünstig, da dadurch das Layout vom gästebuch zerschossen wird :-( Natürlich kann man mit Wordwarp einen Umbruch machen, allerdings sieht das dann doof aus....
Gibt es Alternativen?



echo nl2br(new_textwrap ($text,30,' ',1));

Hallo,
ich habe öfters in meinem Gästebuch Einträge wie z.B. ein ellenlanges XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXx
Das ist ungünstig, da dadurch das Layout vom gästebuch zerschossen wird :-( Natürlich kann man mit Wordwarp einen Umbruch machen, allerdings sieht das dann doof aus....
Gibt es Alternativen?



echo nl2br(cut_long_word ($text,30));

Hallo,
ich habe öfters in meinem Gästebuch Einträge wie z.B. ein ellenlanges XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXx
Das ist ungünstig, da dadurch das Layout vom gästebuch zerschossen wird :-( Natürlich kann man mit Wordwarp einen Umbruch machen, allerdings sieht das dann doof aus....
Gibt es Alternativen?


phpversion = 7.3.33

<html>
<head>
<title>cut_long_word oder wordwrap</title>
</head>
<body>
<h1>cut_long_word oder wordwrap</h1>
<a href="http://php3-forum.de/forum.php3?nr=115891&amp;site=0&amp;suche=linker&amp;where=inhalt" target="bla"><h2>Bitte erst das lesen!</h2></a>
<?php

function new_textwrap ($String$breaksAt 78$breakStr "\n"$cut $padStr="") {
  
/*
  new_textwrap 1.0 <linker@toter-link.de>

    Based on textwrap 1.0 by Brian Moon <brian@phorum.org>
    http://px.sklar.com/code-pretty.html?code_id=370

  tested with PHP 3.0.16 WIN
  You can use it as ' wordwrap ' from PHP4

  $String    The string to be wrapped.
  $breaksAt  How many characters each line should be.
  $breakStr  What character should be used to cause a break.
  $cut        If the cut is set to 1, the string is always wrapped at the specified width.
  $padStr    Allows for the wrapped lines to be padded at the begining.
  */

    
$newString="";
    
$lines=explode($breakStr$String);
    
$cnt=count($lines);
    for(
$x=0;$x<$cnt;$x++){
      if(
strlen($lines[$x])>$breaksAt){
        
$str=$lines[$x];
        while(
strlen($str)>$breaksAt){
          
$find ;
          
// echo $str."\n" ;
          
$pos=strrpos(substr($str0$breaksAt+1), " ");
          if (
$pos == false) {
              If(
$cut) {
                  
$pos $breaksAt ;
                  
$find ;
              } else {
                  
$posstrpos($str" ");
                  if (
$pos == false)
                      break;
              }
          }
          
$newString.=$padStr.substr($str0$pos).$breakStr;
          
$str=(substr($str$pos $find)); // or $str=trim(substr($str, $pos));

        
}
        
$newString.=$padStr.$str.$breakStr;
      }
      else{
        
$newString.=$padStr.$lines[$x].$breakStr;
      }
    }

    return 
substr ($newString,0, -(strlen($breakStr)));

// end new_textwrap()

function cut_long_word ($text,$len=40){
    
/*
    *  cut_long_word() von linker@toter-link.de
    *
    *
    *  $text -> Der Text in dem die langen Woerter gebrochen werden sollen.
    *  $len  -> Die Maximale Laenge die ein Wort haben darf ohne gebrochen zu werden.
    *           Wird $len nicht angegeben ist 40 voreingestellt.
    *
    *  Bugs to linker@toter-link.de
    *
    *  Example 1:

$text =  cut_long_word ($text,25);

    *  Example 2:

echo  cut_long_word ($text);

    */
    
$neutext $text;
        do {
            
$text $neutext;
            
$neutext preg_replace('~(^|\s)(\S{'.$len.'})(\S)~S''\1\2 \3'$text);
        } while (
$neutext != $text);
    return 
$neutext;
}
//------------------------------------


$text '
Hallo,
ich habe öfters in meinem Gästebuch Einträge wie z.B. ein ellenlanges XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
Das ist ungünstig, da dadurch das Layout vom gästebuch zerschossen wird :-( Natürlich kann man mit Wordwarp einen Umbruch machen, allerdings sieht das dann doof aus....
Gibt es Alternativen?
'
;

//require('26462.html');
echo "<br><hr><br>";

echo 
'<b>echo nl2br(wordwrap ($text,30,\' \',1));</b><br>';
echo 
nl2br(wordwrap ($text,30,' ',1));
echo 
"<br><hr><br>";


echo 
'<b>echo nl2br(new_textwrap ($text,30,\' \',1));</b><br>';
echo 
nl2br(new_textwrap ($text,30,' ',1));
echo 
"<br><hr><br>";

echo 
'<b>echo nl2br(cut_long_word ($text,30));</b><br>';
echo 
nl2br(cut_long_word ($text,30));
echo 
"<br><hr>";

echo 
'<b>phpversion = '.phpversion().'</b><br><br>' ;
highlight_file ('php4-forum-26462.php');
?>
</body>
</html>