选择语言 :

 Core_UTF8::str_pad

Pads a UTF-8 string to a certain length with another string. This is a UTF8-aware version of str_pad.

$str = UTF8::str_pad($str, $length);

string Core_UTF8::str_pad( string $str , integer $final_str_length [, string $pad_str = string(1) " " , string $pad_type = integer 1 ] )
author
Harry Fuecks hfuecks@gmail.com

参数列表

参数 类型 描述 默认值
$str string Input string
$final_str_length integer Desired string length after padding
$pad_str string String to use as padding string(1) " "
$pad_type string Padding type: STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH integer 1
返回值
  • string
File: ./core/classes/utf8.class.php
public static function str_pad($str, $final_str_length, $pad_str = ' ', $pad_type = STR_PAD_RIGHT)
{
    if ( UTF8::is_ascii($str) && UTF8::is_ascii($pad_str) ) return str_pad($str, $final_str_length, $pad_str, $pad_type);

    $str_length = UTF8::strlen($str);

    if ( $final_str_length <= 0 || $final_str_length <= $str_length ) return $str;

    $pad_str_length = UTF8::strlen($pad_str);
    $pad_length = $final_str_length - $str_length;

    if ( $pad_type == STR_PAD_RIGHT )
    {
        $repeat = ceil($pad_length / $pad_str_length);
        return UTF8::substr($str . str_repeat($pad_str, $repeat), 0, $final_str_length);
    }

    if ( $pad_type == STR_PAD_LEFT )
    {
        $repeat = ceil($pad_length / $pad_str_length);
        return UTF8::substr(str_repeat($pad_str, $repeat), 0, floor($pad_length)) . $str;
    }

    if ( $pad_type == STR_PAD_BOTH )
    {
        $pad_length /= 2;
        $pad_length_left = floor($pad_length);
        $pad_length_right = ceil($pad_length);
        $repeat_left = ceil($pad_length_left / $pad_str_length);
        $repeat_right = ceil($pad_length_right / $pad_str_length);

        $pad_left = UTF8::substr(str_repeat($pad_str, $repeat_left), 0, $pad_length_left);
        $pad_right = UTF8::substr(str_repeat($pad_str, $repeat_right), 0, $pad_length_left);
        return $pad_left . $str . $pad_right;
    }

    trigger_error('UTF8::str_pad: Unknown padding type (' . $pad_type . ')', E_USER_ERROR);
}