深入浅析php中sprintf与printf函数的用法及区别


Posted in PHP onJanuary 08, 2016

PHP sprintf() 函数

把百分号(%)符号替换成一个作为参数进行传递的变量:

<?php
$number = 2;
$str = "Shanghai";
$txt = sprintf("There are %u million cars in %s.",$number,$str);
echo $txt;
?>

定义和用法

sprintf() 函数把格式化的字符串写入变量中。

arg1、arg2、++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符位于 % 符号之后,由数字和 "\$" 组成。

语法

参数 描述
format 必需。规定字符串以及如何格式化其中的变量。 可能的格式值: %% - 返回一个百分号 % %b - 二进制数 %c - ASCII 值对应的字符 %d - 包含正负号的十进制数(负数、0、正数) %e - 使用小写的科学计数法(例如 1.2e+2) %E - 使用大写的科学计数法(例如 1.2E+2) %u - 不包含正负号的十进制数(大于等于 0) %f - 浮点数(本地设置) %F - 浮点数(非本地设置) %g - 较短的 %e 和 %f %G - 较短的 %E 和 %f %o - 八进制数 %s - 字符串 %x - 十六进制数(小写字母) %X - 十六进制数(大写字母) 附加的格式值。必需放置在 % 和字母之间(例如 %.2f): + (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记) ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充)) - (左调整变量值) [0-9] (规定变量值的最小宽度) .[0-9] (规定小数位数或最大字符串长度) 注释:如果使用多个上述的格式值,它们必须按照以上顺序使用。
arg1 必需。规定插到 format 字符串中第一个 % 符号处的参数。
arg2 可选。规定插到 format 字符串中第二个 % 符号处的参数。
arg++ 可选。规定插到 format 字符串中第三、四等 % 符号处的参数。

PHP printf() 函数

输出格式化的字符串:

<?php
$number = 9;
$str = "北京";
printf("在%s有 %u 百万辆自行车。",$str,$number);
?>

定义和用法

printf() 函数输出格式化的字符串。

语法

printf(format,arg1,arg2,arg++)

参数 描述
format 必需。规定字符串以及如何格式化其中的变量。 可能的格式值: %% - 返回一个百分号 % %b - 二进制数 %c - ASCII 值对应的字符 %d - 包含正负号的十进制数(负数、0、正数) %e - 使用小写的科学计数法(例如 1.2e+2) %E - 使用大写的科学计数法(例如 1.2E+2) %u - 不包含正负号的十进制数(大于等于 0) %f - 浮点数(本地设置) %F - 浮点数(非本地设置) %g - 较短的 %e 和 %f %G - 较短的 %E 和 %f %o - 八进制数 %s - 字符串 %x - 十六进制数(小写字母) %X - 十六进制数(大写字母) 附加的格式值。必需放置在 % 和字母之间(例如 %.2f): + (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记) ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。) - (左调整变量值) [0-9] (规定变量值的最小宽度) .[0-9] (规定小数位数或最大字符串长度) 注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。
arg1 必需。规定插到 format 字符串中第一个 % 符号处的参数。
arg2 必需。规定插到 format 字符串中第二个 % 符号处的参数。
arg++ 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。

下面是一个示例:四舍五入保留小数点后两位

<?php
$num1 = 21;
echo sprintf("%0.2f",$num1)."<br />"; //输出 21.00
$num2 = 16.3287;
echo sprintf("%0.2f",$num2)."<br />"; //输出 16.33
$num3 = 32.12329;
echo sprintf("%0.2f",$num3)."<br />"; //输出 32.12 
?>

解释下 %0.2f 的含义:

% 表示起始字符
0 表示空位用0填满
2 表示小数点后必须占两位
f 表示转换成浮点数

转换字符

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

% 印出百分比符号,不转换。
b 整数转成二进位。
c 整数转成对应的 ASCII 字元。
d 整数转成十进位。
f 倍精确度数字转成浮点数。
o 整数转成八进位。
s 整数转成字串。
x 整数转成小写十六进位。
X 整数转成大写十六进位。

printf与sprintf的区别

1. printf函数:

int printf ( string format [, mixed args [, mixed ...]] )
Produces output according to format , which is described in the documentation for sprintf() .
Returns the length of the outputted string.

把文字格式化以后输出,如:

$name="hunte"; 
$age=25; 
printf("my name is %s, age %d", $name, $age);

2. sprintf函数:

string sprintf ( string format [, mixed args [, mixed ...]] )
Returns a string produced according to the formatting string format .

跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。

3. print函数:

是函数,可以返回一个值,只能有一个参数。

int print ( string arg )
Outputs arg . Returns 1 , always.
PHP 相关文章推荐
人大复印资料处理程序_查询篇
Oct 09 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
thinkphp的c方法使用示例
Feb 24 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
PHP中each与list用法分析
Jan 08 #PHP
PHP中list()函数用法实例简析
Jan 08 #PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 #PHP
PHP中substr_count()函数获取子字符串出现次数的方法
Jan 07 #PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 #PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 #PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 #PHP
You might like
php设计模式 Command(命令模式)
2011/06/26 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
jQuery模拟爆炸倒计时功能实例代码
2017/08/21 jQuery
vue表单自定义校验规则介绍
2018/08/28 Javascript
wxPython使用系统剪切板的方法
2015/06/16 Python
python中list列表的高级函数
2016/05/17 Python
python常见排序算法基础教程
2017/04/13 Python
Python使用sorted排序的方法小结
2017/07/28 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
怎样让char类型的东西转换成int类型
2013/12/09 面试题
经理秘书求职自荐信范文
2014/03/23 职场文书
踏青活动策划方案
2014/08/19 职场文书
个人对照检查材料思想汇报
2014/09/26 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
母亲节主题班会
2015/08/14 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
SQLServer常见数学函数梳理总结
2022/08/05 MySQL
关于MySQL中explain工具的使用
2023/05/08 MySQL