深入浅析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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
用PHP和ACCESS写聊天室(四)
Oct 09 PHP
php字符串截取问题
Nov 28 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
PHP和MYSQL实现分页导航思路详解
Apr 11 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
Laravel如何实现自动加载类
Oct 14 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命令行用法
2015/02/04 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
Python 函数基础知识汇总
2018/03/09 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
教师个人自我鉴定
2014/02/08 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
机电专业求职信
2014/06/14 职场文书
师德师风剖析材料
2014/09/30 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
工程项目合作意向书
2015/05/08 职场文书
唐山大地震的观后感
2015/06/05 职场文书
仰望星空观后感
2015/06/10 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
React列表栏及购物车组件使用详解
2021/06/28 Javascript
JS数组方法some、every和find的使用详情
2021/10/05 Javascript