深入浅析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 相关文章推荐
获取PHP警告错误信息的解决方法
Jun 03 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
php获取域名的google收录示例
Mar 24 PHP
ThinkPHP框架实现session跨域问题的解决方法
Jul 01 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php遍历解析xml字符串的方法
May 05 PHP
PHP生成短网址方法汇总
Jul 12 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
利用PHP如何统计Nginx日志的User Agent数据
Mar 06 PHP
Laravel 之url参数,获取路由参数的例子
Oct 21 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 mail()函数使用及配置方法
2014/01/14 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
10条php编程小技巧
2015/07/07 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
python使用cookielib库示例分享
2014/03/03 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
python opencv实现证件照换底功能
2019/08/19 Python
通过python3实现投票功能代码实例
2019/09/26 Python
python集合常见运算案例解析
2019/10/17 Python
快速创建python 虚拟环境
2020/11/28 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
酒店经理职责
2014/01/30 职场文书
党建示范点实施方案
2014/03/12 职场文书
创意婚礼策划方案
2014/05/18 职场文书
化学教育专业求职信
2014/07/08 职场文书
可怜妈妈观后感
2015/06/09 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python