美文网首页
PHP 格式化字符串

PHP 格式化字符串

作者: 7emini | 来源:发表于2019-06-22 12:37 被阅读0次

    常用的函数 print, print_fecho (严格的说 echo 是PHP的语言结构, 并不是函数)仅仅是将文本在浏览器上输出, 格式化字符串需要用到函数 printfsprintf .

    printf 函数

    printf ( string $format [, mixed $args [, mixed $... ]] ) : int

    也就是说通过规则 format 来格式化后面的参数, 返回输出字符串的长度. 首先了解 format 规则中的类型指定符.

    类型指定符号

    指定符 说明
    d 以十进制显示参数
    b 以二进制显示参数
    c 将参数显示为ASCII字符
    f 以双精度浮点数显示参数
    o 以8进制显示参数
    s 以字符串显示参数
    x 以一个小写的十六进制显示参数
    X 以一个大写的十六进制显示参数
    u 以无符号十进制显示参数

    示例:

    <?php
        $number = 543;
        printf("%d<br>", $number); //543
        printf("%b<br>", $number); //1000011111
        printf("%f<br>", $number); //543.000000
        printf("%o<br>", $number); //1037
        printf("%s<br>", $number); //543
        printf("%x<br>", $number); //21f
        printf("%X<br>", $number); //21F
        printf("%u<br>", $number); //543
    

    设置精度

    以浮点数格式输出数据, 可以指定对数据舍入的精度.

    示例:

    <?php
        $number = 543.33333;    
        printf("%.2f", $number); //543.33
    

    指定宽度

    示例:

    <?php
        echo "<pre>";
        printf("%10s\n", '1234');
        printf("%10s\n", 'Hello');
        printf("%10s\n", 'World');
        printf("%-10s\n", '1234'); //左对齐
        printf("%-10s\n", 'Hello');
        printf("%-10s\n", 'World');
    

    浏览器输出:

          1234
         Hello
         World
    1234      
    Hello     
    World     
    

    %10s10指定输出字符宽度. 默认是右对齐, 如果在10中添加减号, 可以使其左对齐.

    使用占位符

    指定宽度后, 还可以用占位符来填充输出.

    示例:

    <?php
        echo "<pre>";
        $number = 543;
        printf("%06d\n", $number); //000543
        printf("% 6d\n", $number); //   543 (空格也可以是占位符)
        printf("%'x6d\n", $number); //xxx543 (除了空格和0以外, 其它占位符前面必须要有一个单引号)
        printf("%-06s", $number); //543000 
    

    浏览器输出:

    000543
       543
    xxx543
    543000
    

    %06d0 是占位符, 6 是输出字符的总数. 如果要输出的数据所占用的字符少于总数, 就会用占位符填充.

    参数交换

    示例:

    <?php
        echo "<pre>";
        printf("%3\$d %1\$d %2\$d", 12, 13, 14); 
    

    输出:

    14 12 13
    

    其中 %3\$d 是第三个参数 %1\$d 是第一个参数 %2\$d 是第二个参数, 也就是说 %n\$d 代表第 n 个参数.

    sprintf 函数

    使用 printf 函数返回的是格式化后字符串的长度, 如果想使用格式化后的字符串, sprintf 函数就有了用武之地.

    sprintf ( string $format [, mixed] $...] ) : string

    sprintf 函数与 printf 函数 使用方法一样, 只不过 sprintf 函数返回格式化后的字符串, 可以直接赋给变量

    示例:

    <?php
        echo "<pre>";
        $num = 56;
        $str = sprintf("%-06s", $num);
        echo $str; //560000
    

    相关文章

      网友评论

          本文标题:PHP 格式化字符串

          本文链接:https://www.haomeiwen.com/subject/gtwmqctx.html