深入理解php printf() 输出格式化的字符串


Posted in PHP onMay 23, 2016

php printf() 函数用于输出格式化的字符串,本文章向码农介绍php printf()函数的使用方法和基本使用实例,感兴趣的码农可以参考一下。

定义和用法

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

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

注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。请参见例子 2。

提示:相关函数:sprintf()、 vprintf()、 vsprintf()、 fprintf() 和 vfprintf()

•fprintf()
•sprintf()
•vfprintf()
•vprintf()
•vsprintf() 

语法

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 版本: 4+

 

实例

例子 1

使用格式值 %f:

<?php 
$number = 123; 
printf("%f",$number); 
?>

例子 2

使用占位符:

<?php 
$number = 123; 
printf("有两位小数:%1\$.2f<br>没有小数:%1\$u",$number); 
?>

例子 3

所有可能的格式值的演示:

<?php 
$num1 = 123456789; 
$num2 = -123456789; 
$char = 50; // ASCII 字符 50 是 2 
 
// 注释:格式值 "%%" 返回百分号 
printf("%%b = %b <br>",$num1); // 二进制数 
printf("%%c = %c <br>",$char); // ASCII 字符 
printf("%%d = %d <br>",$num1); // 带符号的十进制数 
printf("%%d = %d <br>",$num2); // 带符号的十进制数 
printf("%%e = %e <br>",$num1); // 科学计数法(小写) 
printf("%%E = %E <br>",$num1); // 科学计数法(大写) 
printf("%%u = %u <br>",$num1); // 不带符号的十进制数(正) 
printf("%%u = %u <br>",$num2); // 不带符号的十进制数(负) 
printf("%%f = %f <br>",$num1); // 浮点数(视本地设置) 
printf("%%F = %F <br>",$num1); // 浮点数(不视本地设置) 
printf("%%g = %g <br>",$num1); // 短于 %e 和 %f 
printf("%%G = %G <br>",$num1); // 短于 %E 和 %f 
printf("%%o = %o <br>",$num1); // 八进制数 
printf("%%s = %s <br>",$num1); // 字符串 
printf("%%x = %x <br>",$num1); // 十六进制数(小写) 
printf("%%X = %X <br>",$num1); // 十六进制数(大写) 
printf("%%+d = %+d <br>",$num1); // 符号说明符(正) 
printf("%%+d = %+d <br>",$num2); // 符号说明符(负) 
?>

例子 4

字符串说明符的演示:

<?php
$str1 = "Hello";
$str2 = "Hello world!";

printf("[%s]<br>",$str1);
printf("[%8s]<br>",$str1);
printf("[%-8s]<br>",$str1);
printf("[%08s]<br>",$str1);
printf("[%'*8s]<br>",$str1);
printf("[%8.8s]<br>",$str2);
?>

以上这篇深入理解php printf() 输出格式化的字符串就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
Ajax+PHP 边学边练 之二 实例
Nov 24 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
简单说说PHP优化那些事(经验分享)
Nov 27 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
Git命令之分支详解
Mar 02 PHP
如何判断微信付款码和支付宝付款码
Apr 01 PHP
PHP书写格式详解(必看)
May 23 #PHP
Smarty模板简单配置与使用方法示例
May 23 #PHP
Smarty模板引擎缓存机制详解
May 23 #PHP
Yii2分页的使用及其扩展方法详解
May 23 #PHP
CI框架扩展系统核心类的方法分析
May 23 #PHP
PHP strip_tags保留多个HTML标签的方法
May 22 #PHP
项目中应用Redis+Php的场景
May 22 #PHP
You might like
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
用javascript实现自定义标签
2007/05/08 Javascript
List all the Databases on a SQL Server
2007/06/21 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python搭建虚拟环境的步骤详解
2016/09/27 Python
python pandas生成时间列表
2019/06/29 Python
tornado+celery的简单使用详解
2019/12/21 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
枚举与#define宏的区别
2014/04/30 面试题
捐赠仪式主持词
2014/03/19 职场文书
微信搭讪开场白
2015/05/28 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技