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

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

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

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

%...的一般规范是

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

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

  • [argnum$]

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

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

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

  • [flags]

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

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

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

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

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

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

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

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

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

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

  • [.precision]

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

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

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

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

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

  • specifier

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

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

PHP sprintf() 函数详解的更多相关文章

  1. 实例-sprintf() 函数详解-输出格式转换函数

    Part1:实例 $filterfile = basename(PHP_SELF, '.php'); if (isset($_GET['uselastfilter']) && isse ...

  2. sprintf函数详解

    转摘声明:选自<CSDN 社区电子杂志——C/C++杂志> 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样 ...

  3. linux的system () 函数详解

    linux的system () 函数详解     system(执行shell 命令)相关函数        fork,execve,waitpid,popen表头文件        #i nclud ...

  4. 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)

    本文转自: C语言itoa()函数和atoi()函数详解(整数转字符C实现) 介绍 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. int/float to ...

  5. CString 的成员函数详解

    CSTRING的成员函数详解   typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;CStrin ...

  6. malloc 与 free函数详解<转载>

    malloc和free函数详解   本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...

  7. NSSearchPathForDirectoriesInDomains函数详解

    NSSearchPathForDirectoriesInDomains函数详解     #import "NSString+FilePath.h" @implementation ...

  8. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  9. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

随机推荐

  1. springboot支付项目之springboot集成jpa

    springboot集成spring-jpa 本文主要内容: 1:spring boot怎么集成spring-jpa以及第一个jpa查询示例 如jpa几个常用注解.lombok注解使用 2:怎么设置i ...

  2. 以puppeteer抓取微指数,puppeteer基本示例,docker部署headless

    还是直接上代码 https://github.com/cclient/weizhishu-puppeteer 根据关键字获取微博指数 早期版本以常规的构造cookie,token,sign的访问api ...

  3. FireWall2

    配置防火墙步骤: 1.给接口配置ip,开 service-manage 服务 2.把接口画在zone区域 3.配置策略 4.服务器一定要开启服务 1. interface GigabitEtherne ...

  4. SpringBoot中使用task实现定时任务

    定时任务实现的几种方式: Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行, ...

  5. android选择器汇总、仿最美应用、通用课程表、卡片动画、智能厨房、阅读客户端等源码

    Android精选源码 android各种 选择器 汇总源码 高仿最美应用项目源码 android通用型课程表效果源码 android实现关键字变色 Android ViewPager卡片视差.拖拽及 ...

  6. Python基本了解

    1. 计算机基础知识 CPU : 人类的大脑,运算处理问题 内存 : 临时储存数据,断点数据就会消失,存储数据快 硬盘 : 永久存储各种数据,相对于内存存储速度慢 操作系统 : 本质上是一个软件,用于 ...

  7. text-align和vertical-align

    1.text-align(水平对齐)text-align样式使元素在其定界区域内水平对齐,其取值可以是left.right.center或justify.justify使元素两端对齐.2.vertic ...

  8. spring:事务的5大隔离级别,7大传播行为

    一.五大隔离级别 ISOLATION_READ_UNCOMMITTED:读未提交 ISOLATION_READ_COMMITTED:读已提交 ISOLATION_REPEATABLE_READ:可重复 ...

  9. 解析Maven的settings.xml文件

    一.镜像问题 1.为什么需要配置maven国内镜像? 在不配置镜像的情况下,maven默认会使用中央库.--https://repo.maven.apache.org/maven2 maven中央库在 ...

  10. Eclipse添加comment

    1.给新增的Java类,自动生成Comment. 打开Preferences,找到Java-->Code Style -->Code Templates-->Comments--&g ...