Вход Регистрация
Файл: DARK WARS/dark_war/smarty/plugins/shared.mb_wordwrap.php
Строк: 81
<?php
/**
 * Smarty shared plugin
 *
 * @package Smarty
 * @subpackage PluginsShared
 */

if(!function_exists('smarty_mb_wordwrap')) {

    
/**
     * Wrap a string to a given number of characters
     *
     * @link http://php.net/manual/en/function.wordwrap.php for similarity
     * @param string  $str   the string to wrap
     * @param int     $width the width of the output
     * @param string  $break the character used to break the line
     * @param boolean $cut   ignored parameter, just for the sake of
     * @return string wrapped string
     * @author Rodney Rehm
     */
    
function smarty_mb_wordwrap($str$width=75$break="n"$cut=false)
    {
        
// break words into tokens using white space as a delimiter
        
$tokens preg_split('!(s)!S' Smarty::$_UTF8_MODIFIER$str, -1PREG_SPLIT_NO_EMPTY PREG_SPLIT_DELIM_CAPTURE);
        
$length 0;
        
$t '';
        
$_previous false;

        foreach (
$tokens as $_token) {
            
$token_length mb_strlen($_tokenSmarty::$_CHARSET);
            
$_tokens = array($_token);
            if (
$token_length $width) {
                
// remove last space
                
$t mb_substr($t0, -1Smarty::$_CHARSET);
                
$_previous false;
                
$length 0;

                if (
$cut) {
                    
$_tokens preg_split('!(.{' $width '})!S' Smarty::$_UTF8_MODIFIER$_token, -1PREG_SPLIT_NO_EMPTY PREG_SPLIT_DELIM_CAPTURE);
                    
// broken words go on a new line
                    
$t .= $break;
                }
            }

            foreach (
$_tokens as $token) {
                
$_space = !!preg_match('!^s$!S' Smarty::$_UTF8_MODIFIER$token);
                
$token_length mb_strlen($tokenSmarty::$_CHARSET);
                
$length += $token_length;

                if (
$length $width) {
                    
// remove space before inserted break
                    
if ($_previous && $token_length $width) {
                        
$t mb_substr($t0, -1Smarty::$_CHARSET);
                    }

                    
// add the break before the token
                    
$t .= $break;
                    
$length $token_length;

                    
// skip space after inserting a break
                    
if ($_space) {
                        
$length 0;
                        continue;
                    }
                } else if (
$token == "n") {
                    
// hard break must reset counters
                    
$_previous 0;
                    
$length 0;
                } else {
                    
// remember if we had a space or not
                    
$_previous $_space;
                }
                
// add the token
                
$t .= $token;
            }
        }

        return 
$t;
    }

}
?>
Онлайн: 1
Реклама