深入浅析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 相关文章推荐
支持数组的ADDSLASHES的php函数
Feb 16 PHP
php自动获取目录下的模板的代码
Aug 08 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
php图片的二进制转换实现方法
Dec 15 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
php对微信支付回调处理的方法
Aug 23 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
python中使用np.delete()的实例方法
2021/02/01 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
二年级学生评语大全
2014/04/23 职场文书
关于运动会的广播稿
2014/09/22 职场文书
2014年财务部工作总结
2014/11/11 职场文书
2014年妇联工作总结
2014/11/21 职场文书
办公室主任个人总结
2015/02/28 职场文书
出纳岗位职责范本
2015/03/31 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python