php 对齐方法

太庞大了,效率是个问题,可以砍掉不不需要的

 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     }

 

posted @ 2016-06-24 20:56  Kuckboy_shan  阅读(751)  评论(0编辑  收藏  举报