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官网对应页面()编译和扩展,如有错误欢迎指正。
PHP sprintf() 函数详解的更多相关文章
- 实例-sprintf() 函数详解-输出格式转换函数
Part1:实例 $filterfile = basename(PHP_SELF, '.php'); if (isset($_GET['uselastfilter']) && isse ...
- sprintf函数详解
转摘声明:选自<CSDN 社区电子杂志——C/C++杂志> 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样 ...
- linux的system () 函数详解
linux的system () 函数详解 system(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #i nclud ...
- 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)
本文转自: C语言itoa()函数和atoi()函数详解(整数转字符C实现) 介绍 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. int/float to ...
- CString 的成员函数详解
CSTRING的成员函数详解 typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;CStrin ...
- malloc 与 free函数详解<转载>
malloc和free函数详解 本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...
- NSSearchPathForDirectoriesInDomains函数详解
NSSearchPathForDirectoriesInDomains函数详解 #import "NSString+FilePath.h" @implementation ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Linux C popen()函数详解
表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...
随机推荐
- dubbo接口泛化调用例子
@ApiOperation(value = "dubbo泛化调用工具接口") public Result dubboApiTool( @ApiParam(value = " ...
- web接口测试中需要注意的点
1.接口返回 数据格式是否和预期一致.例如:要求返回json格式的数据,json数据的key命名是否正确,对应的value是否与数据库一致. 需要转换的数据是否正确转换,例如时间戳是否按正确转换为时间 ...
- ReactJS - 组件的生命周期
组件的生命周期分为三个状态 Mounting: 已插入真实DOM Updateing: 正在被重新渲染 Unmounting: 已移出真实DOM React 为每个状态都提供了两种处理函数,即函数在进 ...
- UTF虚拟对象
虚拟对象: 虚拟对象是为了让UFT识别某些不能识别的控件,把这些控件的范围定义为虚拟对象. 新建虚拟对象 管理虚拟对象 创建虚拟对象之后可通过菜单tools-Virutal Objects-Virut ...
- Tarjan模板——求强连通分量
Tarjan求强连通分量的流程在这个博客讲的很清楚,再加上我也没理解透,这里就不写了. 缩点:将同一个连通块内的点视为同一个点. 扔一道模板题:codeVS2822爱在心中 第一问很显然就是求点数大于 ...
- 三、RabbitMQ安装
安装前准备 Linux版本信息: 发行版本:CentOS Linux release 7.5.1804 (Core) 内核版本:Linux version 3.10.0-862.el7.x86_64 ...
- python学习笔记(0)python基础概念
一.字符集 说字符集之前,先说下2进制的故事,计算机比较傻只认识2进制,什么是2进制,就是0,1,计算机只认识这俩数字,其他的都不认识,这样的0或1为一"位",规定8位为一个字节, ...
- C语言数据转换
1.在我们编码的时候可能一个表达式中的数字类型是不同的,所以我们的首要的工作就是要把它们转换成相同的类型,然后在进行计算.这个转换的过程就就做隐式类型转换,完全由计算机完成. 2.隐式类型转换有一定的 ...
- vue项目根目录下index.html中的id="app",与src目录下的App.vue中的id="app"为什么不会冲突
感谢:https://blog.csdn.net/qq_35624642/article/details/78243413 index.html <body> <div id=&qu ...
- 无人工地,原来是靠AI这样运行的
随着全世界逐渐进入老龄化社会,适龄工作人口将急剧减少,必然导致用工成本增加,施工方降低人工成本.提升施工效率和质量的需求会越来越强烈,数字化施工技术应用前景广阔.在过去的十年中,无人机迎来了自己发展的 ...