太庞大了,效率是个问题,可以砍掉不不需要的
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 string10 */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 }