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 相关文章推荐
Oracle 常见问题解答
Oct 09 PHP
图书管理程序(三)
Oct 09 PHP
动易数据转成dedecms的php程序
Apr 07 PHP
php抓取https的内容的代码
Apr 06 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
PHP下常用正则表达式整理
Oct 26 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
PHP学习笔记(二):变量详解
Apr 17 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP赋值的内部是如何跑的详解
Jan 13 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
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
js 处理数组重复元素示例代码
2013/12/27 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
python进阶教程之词典、字典、dict
2014/08/29 Python
Python对象体系深入分析
2014/10/28 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
python如何写try语句
2020/07/14 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
PHP中如何使用Cookie
2015/10/28 面试题
作文批改评语大全
2014/04/23 职场文书
协议书范本
2014/04/23 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python