Einzelnen Beitrag anzeigen
  #12 (permalink)  
Alt 29-08-2012, 23:26
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Quetschi Beitrag anzeigen
PHP-Code:
$str "Etwas Text - mal ein e-Zeichen und wieder etwas Text";
echo 
wordwrap($str30); 
bricht nach "e-Zeichen" um.

PHP-Code:
$str "Etwas Text - mal ein €-Zeichen und wieder etwas Text";
echo 
wordwrap($str30); 
bricht nach "mal ein" um.
Mein hingehackter Versuch:
PHP-Code:
function wordwrap_utf8_primitive($str$length$break) {
  
$parts explode(' '$str);
  
$return = array('');
  
$i 0;
  foreach(
$parts as $word) {
    if(
mb_strlen($return[$i], 'UTF-8') + mb_strlen($word'UTF-8') <= $length) {
      
$return[$i] .= $word ' ';
    }
    else {
      
$return[$i] = rtrim($return[$i]); // letztes Leerzeichen wieder entfernen
      
$return[++$i] = $word ' ';
    }
  }
  return 
rtrim(join($break$return));
}

$str "Etwas Text - mal ein e-Zeichen und wieder etwas Text";
echo 
wordwrap_utf8_primitive($str30'<br>');  

$str "Etwas Text - mal ein €-Zeichen und wieder etwas Text";
echo 
wordwrap_utf8_primitive($str30'<br>');

// Ausgabe:

// Etwas Text - mal ein e-Zeichen
// und wieder etwas Text

// Etwas Text - mal ein €-Zeichen
// und wieder etwas Text 
Geht sicherlich eleganter, aber tut für den präsentierten Testfall erst mal was es soll.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten