PHP sprintf 字符串函数
-
定义和用法
sprintf - 返回格式化的字符串 -
版本支持
PHP4 PHP5 PHP7 支持 支持 支持 -
语法
sprintf ( string $format [, 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 -
返回值
返回根据 format 字符串格式生成的字符串。或者失败返回FALSE -
示例
尝试一下<?php $num = 5; $location = 'tree'; $format = 'There are %d monkeys in the %s'; echo sprintf($format, $num, $location); ?>
-
相关函数
printf() - 输出格式化字符串fprintf() - 将格式化后的字符串写入到流vprintf() - 输出格式化字符串vsprintf() - 返回格式化字符串vfprintf() - 将格式化字符串写入流sscanf() - 根据指定格式解析输入的字符fscanf() - 从文件中格式化输入number_format() - 以千位分隔符方式格式化一个数字date() - 格式化一个本地时间/日期