timoshenkov
Новичок
utf8_wordwrap без глюков
Подскажите кто нибудь писал функцию wordwrap для utf8
У меня была вот такая но после некторого тестирования показала не коректную работу
Подскажите кто нибудь писал функцию wordwrap для utf8
У меня была вот такая но после некторого тестирования показала не коректную работу
PHP:
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++;
}
$str=$return.$str;
mb_regex_encoding(my_mb_detect_encoding($str));
$pattern = array('<'.$break, $break.'>', $break.'/>');
$replacement = array('<', '>', '/>');
for ($i=0; $i<sizeof($pattern); $i++) {
$str = mb_ereg_replace($pattern[$i], $replacement[$i], $str);
}
return $str;
}