I had the same problem with Czech language, but I solved it by using utf8_wordwrap funcion by Milian Wolf instead of standard PHP wordwrap function..and it works well
| Code: |
/**
* wordwrap for utf8 encoded strings
*
* @param string $str
* @param integer $len
* @param string $what
* @return string
* @author Milian Wolff <mail@milianw.de>
*/
function utf8_wordwrap($str, $width, $break,$cut = false){
if(!$cut){
$regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){'.$width.',}\b#U';
} else {
$regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){'.$width.'}#';
}
if(function_exists('mb_strlen')){
$str_len = mb_strlen($str,'UTF-8');
} else {
$str_len = preg_match_all('/[\x00-\x7F\xC0-\xFD]/', $str, $var_empty);
}
$while_what = ceil($str_len / $width);
$i = 1;
$return = '';
while ($i < $while_what){
preg_match($regexp, $str,$matches);
$string = $matches[0];
$return .= $string . $break;
$str = substr($str,strlen($string));
$i++;
}
return $return.$str;
}
|
Post edited by: pavel@dc_samantha.cz, at: 2007/06/19 12:17
Post edited by: pavel@dc_samantha.cz, at: 2007/06/19 12:18
Post edited by: pavel@dc_samantha.cz, at: 2007/06/19 12:19
Post edited by: pavel@dc_samantha.cz, at: 2007/06/19 12:21