深入浅析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代码
Dec 06 PHP
php错误、异常处理机制(补充)
May 07 PHP
深入解析php中的foreach函数
Aug 31 PHP
PHP错误和异长常处理总结
Mar 06 PHP
php修改指定文件后缀的方法
Sep 11 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
Redis构建分布式锁
Mar 28 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 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中的路径问题与set_include_path使用介绍
2014/02/11 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Python 实现一个计时器
2020/07/28 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
调查研究项目计划书
2014/04/29 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
七一讲话心得体会
2014/09/05 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
介绍信格式
2015/01/30 职场文书
单身申明具结书
2015/02/26 职场文书
党支部工作总结2015
2015/04/01 职场文书
公司财务部岗位职责
2015/04/14 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python