utf8_wordwrap без глюков

timoshenkov

Новичок
utf8_wordwrap без глюков

Подскажите кто нибудь писал функцию 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;

}
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
[m]wordwrap[/m] -> Коментарии
 

timoshenkov

Новичок
я там нашел вот такой вариант

PHP:
function utf8_wordwrap($str,$width=75,$break="\n", $cut=false){
    return utf8_encode(wordwrap(utf8_decode($str), $width, $break, $cut));
}
но не будет ли это слишком медленно работать?
и правильно ли разберется с тегами?
 

dr-sm

Новичок
check this out )
http://sourceforge.net/projects/phputf8/

-~{}~ 13.03.08 13:44:

также хочу добавить:
utf8_encode and utf8_decode
Impact: will result in corrupt UTF-8 if used incorrectly - they are used to convert only between UTF-8 and ISO-8859-1 - use on another other charset (excepting ASCII-7) would result in junk / lost characters
отсюда
 
Сверху