zoukankan      html  css  js  c++  java
  • PHP sprintf() 函数详解

    PHP中,sprintf()的作用是把字符串进行多种类型的格式化
    一般用法如下:

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

    返回一个按要求格式化后的字符串
    其中$format是格式化规则,mixed $即待格式的参数

    $format规则较为复杂,包含两部分,一部分是普通字符(排除 % ),另一部分是 %...,返回结果中普通字符原样输出,%...用按特定要求格式化对应参数的结果替换。

    %...的一般规范是

    %[argnum$][flags][width][.precision]specifier

    []均为可选,%...specifier,不可省略,下面对每一项挨个介绍一下。

    • [argnum$]

    指定在转换中使用哪个参数
    例如:

    $format = 'The %2$s contains %1$d monkeys';
    echo sprintf($format, $num, $location);

    %2$s 代表使用第二个参数 $location,%1$d 使用第一个参数 $num。

    • [flags]

    标志位,主要有下面几个:

    - 在给定的字段宽度内左对齐(即右边自动填充);右对齐是默认设置,如:

    sprintf("%05s", 1234) => 01234
    sprintf("%-05s", 1234) => 12340

    + 在正数前加上加号 + ; 默认情况下,只有负数前缀有负号,如:

    sprintf("%+5d", 1234) => +1234

    (空间) 用空格填充结果。这是默认值。
    0 左边用0填充。使用s指示符时,它也可以右补零。
    '(指定字符) 设置特定填充字符,如

    sprintf("%'.9d", 123); => ......123

    需要注意的是,以上标识符是可以同时使用多个的(一直疑惑官网上为什么用表示复数的flags),有冲突时写在后面的会覆盖前面的,比如同时使用 '(字符)和0填充,比如:

    sprintf("%'.09d", 123); => 000000123
    sprintf("%0'.9d", 123); => ......123
    • [width]

    宽度
    转换结果的最小字符数,包含所有字符,包括小数点和小数点后面的位数
    当待转换参数位数不足此值时,转换时会按照一定的规则填充满。

    • [.precision]

    精度
    其含义取决于后面的specifier,主要分为三类
    e, E, f, F: 代表小数位数,最常用,如:

    sprintf("%.3e",362525200) =》 3.625e+8
    sprintf("%01.2f", 123.1) =》 123.10

    g, G: -
    s: 显示的字符串的位数,这个比较难理解,看下面例子:

    sprintf("%4.2s", 1234); =》 12

    即只显示原参数的位数,位数不足时填充完成。

    • specifier 

    标识符比较多,但较常用的主要是
    f, 输出指定位数的小数
    s, 输出定长的字符串
    有个特殊字符 %,需要这样 %%

     

    以上主要根据来自PHP官网对应页面()编译和扩展,如有错误欢迎指正。

  • 相关阅读:
    Python进阶2.3 with的使用
    thinkswoole 跨域
    调用windows服务来监视文件夹状态
    IIS 文件名、目录名或卷标语法不正确解决方法一例
    jqgrid 动态列生成
    Oracle 术语解释 只有一部分
    招聘.NET高级软件工程师
    Zabbix监控集群操作用户“登录失败次数“和“失败日志记录“
    Gin框架组合(Zap、lumberjack、ini)使用手册
    逛书城有感
  • 原文地址:https://www.cnblogs.com/jiaoran/p/12451571.html
Copyright © 2011-2022 走看看