太庞大了,效率是个问题,可以砍掉不不需要的
1 /** 2 * 通过传入的字符串,每个字段的长度,对齐的方式,返回一个符合的字符串 3 * @param string $input 4 * @param int $length 5 * @param int $mode 6 * @param char $replaceChar 7 * 0 靠左对齐 1靠右对齐 2居中对齐 8 * 默认为靠左对齐 9 * @return string 10 */ 11 function alignment($input, $length, $mode, $replaceChar) 12 { 13 $inputLength = (strlen($input) + mb_strlen($input, 'UTF8')) / 2; 14 //暂时考虑$length的长度是大于$input的长度的 15 $len = $length - $inputLength >= 0 ? $length - $inputLength : 0; 16 17 if ($mode == 2) { 18 //$leftLen为所有空格的长度除2向下取整 判断$rightLen是否和起相等,不相等最后追加一个空格 19 $leftLen = floor($len/2); 20 $rightLen = $len - $leftLen; 21 $spaceStr = ''; 22 while ($leftLen--) { 23 $spaceStr .= $replaceChar; 24 } 25 $input = $spaceStr . $input . $spaceStr . ($leftLen == $rightLen ? '' : $replaceChar); 26 } else { 27 $spaceStr = ''; 28 while ($len--) { 29 $spaceStr .= $replaceChar; 30 } 31 if ($mode == 1) { 32 $input = $spaceStr . $input; 33 } else { 34 $input = $input . $spaceStr; 35 } 36 } 37 38 return $input; 39 }