str_pad_g.php /** * PHP 自动填充字符串到指定中文个数的宽度 * $str 需要填充的字符串 * $str_num 中文个数 * * 支持中文,英文,符号, * 主要用于输入出指定宽度的地方,例如打印购物小票
/**
* PHP 自动填充字符串到指定中文个数的宽度
* $str 需要填充的字符串
* $str_num 中文个数
*
* 支持中文,英文,符号,
* 主要用于输入出指定宽度的地方,例如打印购物小票
*/
function aa($str,$str_num){
$len_step = 3; //如果是utf-8编码,则中文字符长度为3
$sLen = strlen($str);
$cn = 0;
$en = 0;
for( $i=0; $i < $sLen; $i++ ){
//判断,如果是中文字符串,则当前总字节数加上相应编码的中文字符长度
if( ord(substr($str,$i,1)) > 0xa0 )
{
$i += $len_step - 1;
$cn ++;
}else{ //否则,为英文字符,加1个字节
$en ++;
}
}
//
for ($x=0;$x<$en;$x++){
$str = $str.' ';
}
$str_len = ($str_num*3) - $en;
$str = str_pad($str,$str_len,' ');
return $str;
}
var_dump(aa('中中111个',9));
var_dump(aa('中中中中1个',9));
var_dump(aa('中中中a个',9));
var_dump(aa('中中中,个',9));
var_dump(aa('中中中,个',9));
