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));