PHP vsprintf()函数格式化字符串操作原理解析


Posted in PHP onJuly 14, 2020

实例

把格式化字符串写入变量中:

<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("There are %u million bicycles in %s.",array($number,$str));
echo $txt;
?>

定义和用法

vsprintf() 函数把格式化字符串写入变量中。

与 sprintf() 不同,vsprintf() 中的参数位于数组中。数组元素将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入第一个数组元素,在第二个 % 符号处,插入第二个数组元素,依此类推。

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

语法

vsprintf(format,argarray)

参数 描述
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\](规定小数位数或最大字符串长度)注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。
argarray 必需。带有参数的一个数组,这些参数会被插到 format 字符串中的 % 符号处。

技术细节

返回值:以格式化字符串的形式返回数组值。PHP 版本:4.1.0+

更多实例

例子 1

使用格式值 %f:

<?php
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>

例子 2

使用占位符:

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

例子 3

使用 sprintf() 来演示所有可能的格式值:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2

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

例子 4

字符串说明符的演示:

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP实现用户认证及管理完全源码
Mar 11 PHP
php mysql数据库操作类
Jun 04 PHP
php错误、异常处理机制(补充)
May 07 PHP
基于MySQL到MongoDB简易对照表的详解
Jun 03 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
php数字每三位加逗号的功能函数
Oct 22 PHP
PHP内置加密函数详解
Nov 20 PHP
php实现留言板功能
Mar 05 PHP
基于php编程规范(详解)
Aug 17 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
PHP array_shift()用法实例分析
Jan 07 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 PHP
PHP number_format函数原理及实例解析
Jul 14 #PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 #PHP
PHP基于array_unique实现二维数组去重
Jul 14 #PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 #PHP
通过实例解析PHP数据类型转换方法
Jul 11 #PHP
PHP var关键字相关原理及使用实例解析
Jul 11 #PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 #PHP
You might like
PHP Pear 安装及使用
2009/03/19 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
python处理PHP数组文本文件实例
2014/09/18 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
python的多重继承的理解
2017/08/06 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
详解django中使用定时任务的方法
2018/09/27 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
怎样写好自荐信和推荐信
2013/12/26 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
银行招聘自荐信
2015/03/06 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL