PHP printf 字符串函数

  • 定义和用法

    printf - 输出格式化字符串
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    printf ( string $format [, mixed $args [, mixed $... ]] ) 
    
    依据 format 格式参数产生输出。
  • 参数

    参数 必需的 描述
    format 格式字符串由零个或多个指令组成:普通字符(不包括%)直接复制到结果和转换规范,每个指令都会导致获取自己的参数。转换规范遵循以下原型:%[flags] [width] [.precision]说明符。
    ... 否(依据format参数而定) 替换格式化字符串的占位。
    format参数说明:
    flags:
    • - - 在给定的字段宽度内左对齐; 正确的理由是默认的
    • + - 用加号+前缀正数; 默认仅为负数,前缀为负号。
    • (space) - 用空格填充结果。 这是默认值。
    • 0 - 只有左边的数字用零填充。 使用s说明符,这也可以用零填充右键。
    • '(char) - 使用字符(char)填充结果。
    width:
    • 一个整数,表示此转换应产生的字符数(最小值)。
    precision:
    后跟一个整数,其含义取决于说明符:
    • 对于e,E,f和F说明符:这是小数点后要打印的位数(默认情况下,这是6)。
    • 对于g和G说明符:这是要打印的最大有效位数。
    • 对于s说明符:它充当截止点,为字符串设置最大字符限制。
    注意:如果指定的没有显式的精度值,则假定为0。
    注意:尝试使用大于PHP_INT_MAX的位置说明符将生成警告。
    说明符:
    说明符 描述
    % 字面百分比字符。不需要参数。
    b 该参数被视为一个整数,并以二进制数表示。
    c 该参数被视为一个整数,并表示为具有该ASCII的字符。
    d 该参数被视为一个整数,并以(带符号)十进制数表示。
    e 该论点被视为科学记数法(例如1.2e + 2)。精度说明符代表自PHP 5.2.1以来小数点后的位数。在早期版本中,它被视为有效位数(少一个)。
    E 与e说明符一样,但使用大写字母(例如1.2E + 2)。
    f 该参数被视为浮点数并呈现为浮点数(可识别区域设置)。
    F 该参数被视为浮点数并呈现为浮点数(非语言环境感知)。从PHP 5.0.3开始提供。
    g 一般格式。设P等于非零的精度,如果省略精度则设为6,如果精度为零则设为1。然后,如果具有样式E的转换将具有指数X:如果P>X≥-4,则转换为样式f且精度为P - (X + 1)。否则,转换采用样式e和精度P - 1。
    G 像g说明符一样,但使用E和F.
    o 该参数被视为一个整数,并以八进制数表示。
    s 该参数被处理并呈现为字符串。
    u 该参数被视为一个整数,并以无符号十进制数表示。
    x 该参数被视为一个整数,并以十六进制数字(小写字母)表示。
    X 该参数被视为一个整数,并以十六进制数字表示(使用大写字母)。
    警告:c类型说明符忽略填充和宽度
    警告:尝试将字符串和宽度说明符与每个字符需要多个字节的字符集结合使用可能会导致意外结果
    对于说明符,变量将被强制转换为合适的类型:
    数据类型 说明符
    string s
    integer d, u, c, o, x, X, b
    double g, G, e, E, f, F
  • 返回值

    返回输出字符串的长度。
  • 示例

    <?php
    $num = 2.12;
    printf("%.1f",$num);
    ?>
    
    尝试一下
  • 相关函数

    echo - 输出一个或多个字符串
    print - 输出字符串
    sprintf() - 返回一个格式化字符串
    vprintf() - 输出格式化字符串
    sscanf() - 根据指定格式解析输入的字符
    fscanf() - 从文件中格式化输入
    flush() - 刷新输出缓冲