protected function wordwrap($str, $width, $break, $cut = false)
    {
        if (!$cut) {
            $regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){1,' . $width . '}\b#';
        } else {
            $regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){' . $width . '}#';
        }
        $return = '';
        while (preg_match($regexp, $str, $matches)) {
            $string = $matches[0];
            $str = ltrim(substr($str, strlen($string)));
            if (!$cut && isset($str[0]) && in_array($str[0], ['.', '!', ';', ':', '?', ','])) {
                $string .= $str[0];
                $str = ltrim(substr($str, 1));
            }
            $return .= $string . $break;
        }

        return $return . ltrim($str);
    }
protected function wordwrap($str, $width, $break, $cut = false)
    {
        if (!$cut) {
            $regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){1,' . $width . '}\b#';
        } else {
            $regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){' . $width . '}#';
        }
        $return = '';
        while (preg_match($regexp, $str, $matches)) {
            $string = $matches[0];
            $str = ltrim(substr($str, strlen($string)));
            if (!$cut && isset($str[0]) && in_array($str[0], ['.', '!', ';', ':', '?', ','])) {
                $string .= $str[0];
                $str = ltrim(substr($str, 1));
            }
            $return .= $string . $break;
        }

        return $return . ltrim($str);
    }
protected function wordwrap ( $ str , $ width , $ break , $ cut = false ) { if ( ! $ cut ) { $ regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){1,' . $ width . '}\b#' ; } else { $ regexp = '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){' . $ width . '}#' ; } $ return = '' ; while ( preg_match ( $ regexp , $ str , $ matches ) ) { $ string = $ matches [ 0 ] ; $ str = ltrim ( substr ( $ str , strlen ( $ string ) ) ) ; if ( ! $ cut && isset ( $ str [ 0 ] ) && in_array ( $ str [ 0 ] , [ '.' , '!' , ';' , ':' , '?' , ',' ] ) ) { $ string .= $ str [ 0 ] ; $ str = ltrim ( substr ( $ str , 1 ) ) ; } $ return .= $ string . $ break ; } return $ return . ltrim ( $ str ) ; }
wordwrap for utf8 encoded strings

@param string $str
@param integer $len
@param string $what
@return string
wordwrap for utf8 encoded strings