PHP之sprintf函数用法详解


Posted in PHP onNovember 12, 2014

本文实例讲述了PHP中sprintf函数的用法。分享给大家供大家参考。具体用法分析如下:

sprintf()函数在php官方是说把字符串格式化输出了,本文就来给各位朋友介绍一下在学习sprintf()函数时的一些经验分享,希望能给大家带来帮助.

PHP函数 sprintf() 函数官方定义为:sprintf():把格式化的字符串写入一个变量中

语法为:sprintf(format,arg1,arg2,arg++);

参数:

format:必须,转换格式

arg1 :必须,规定插入 format 字符串中第一个%符号处的参数

arg1 :可选,规定插入 format 字符串中第二个%符号处的参数

arg1++:可选,规定插入 format 字符串中第三、四等%符号处的参数

参数 format 的转换格式,以百分比符号(%)开始到转换字符结束,下面是有可能的format值.

%% ? 返回百分比符号

%b ? 二进制数

%c ? 依照 ASCII 值的字符

%d ? 带符号十进制数

%e ? 可续计数法(比如 1.5e+3)

%u ? 无符号十进制数

%f ? 浮点数(local settings aware)

%F ? 浮点数(not local settings aware)

%o ? 八进制数

%s ? 字符串

%x ? 十六进制数(小写字母)

%X ? 十六进制数(大写字母)

下面是一些demo,代码如下:

// 1. %% :把 %% 替换成 %  

$str = '测试一下 %% 这个参数,会被替换成什么';  

echo sprintf($str);  

//返回结果: 测试一下 % 这个参数,会被替换成什么(%%被替换成一个%) 
// 2. %b :该参数只能替换整型数据,如果是浮点型,只会取整数部分,会忽略小数点后面的数据。如果是非整型数据。返回 0  

$str = '参数 %b 会替换成二进制数';  

$arg = '10';  

echo sprintf($str,$arg);  

//返回结果:参数 1010 会替换成二进制数  

$arg = 10.23;  

echo sprintf($str,$arg);  

//返回结果:参数 1010 会替换成二进制数  

$arg = 'abc';  

echo sprintf($str,$arg);  

//返回结果:参数 0 会替换成二进制数 
// 3. %c 返回字符编码的ASCII码  

$arg = 65;  

$str =  "数字 {$arg} 对应的ASCII码为 %c ";  

echo sprintf($str,$arg);  

//返回结果:数字 65 对应的ASCII码为 A  

  

// 4. %d 将一段字符里的%d替换成int型,数据要求同 $b 相同  

$str = 'ID号为 %d ';  

$arg = -3;  

echo sprintf($str,$arg);  

//返回结果:ID号为 -3  

$arg = 4.5;  

echo sprintf($str,$arg);  

//返回结果:ID号为 4  

$arg = 'abc';  

echo sprintf($str,$arg);  

//返回结果:ID号为 0  

  

// 5. %s - 字符串  

$str = "这是用来测试的sprintf的字符串( %s )。今天消费了%f元。从钟楼到小寨有%d站。上班";  

$arg = '%s';  

echo sprintf($str,$arg,6,5);  

//返回结果:这是用来测试的sprintf的字符串( %s )。今天消费了6.000000元。从钟楼到小寨有5站。上班

至于其它的参数,大家可以试着测试一下.

下面说一下这个函数的一些用途,比如我们在对一张数据表所有数据做多个字段更新时,如果使用循环更新的话,那是很耗费资源的,这里就要用到我们sprintf()函数了.

在数据库批量更新时,我一般采用 case then when end 的语法来做,基本语法如:

UPDATA table  

    SET field = CASE id  

        WHEN 1 THEN 'value1'  

        WHEN 2 THEN 'value2'  

        WHEN 3 THEN 'value3'  

    END  

WHERE id IN (1,2,3)

上面的意思就是说,更新 table 设置 id = 1 的值为 value1, id = 2 的值为 value2 ,id = 3 的值为 value3,这样参数上面的函数将sql语句结合成这样SQL语句,只需一条SQL就可以进行批量更新,具体的方法为:
//比如 id 对应的值为以下数组  

$info = array(1=>'张三',2=>'李四',3=>'王五');  

$ids = implode(',',array_keys($info)) //获取所有的ID字符串  

//组合SQL  

$sql = "UPDATA user SET username = CASE id";  

foreach($info as $id=>$username){  

     $sql .= sprintf("WHEN %d THEN %s",$id,$username);  

}  

$sql .= "END WHERE id IN ($ids)";  

// $model->query($sql)

上面就可以完成批量更新的操作,后面的 where子句确保只有3行数据执行.

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
Yii框架的路由配置方法分析
Sep 09 PHP
php中simplexml_load_file函数用法实例
Nov 12 #PHP
php实现的ping端口函数实例
Nov 12 #PHP
PHP实现下载断点续传的方法
Nov 12 #PHP
php格式化日期实例分析
Nov 12 #PHP
PHP中的Streams详细介绍
Nov 12 #PHP
PHP产生不重复随机数的5个方法总结
Nov 12 #PHP
php一行代码获取文件后缀名实例分析
Nov 12 #PHP
You might like
用libtemplate实现静态网页生成
2006/10/09 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
js定时器+简单的动画效果实例
2017/11/10 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
Python中的is和id用法分析
2015/01/26 Python
Python中每次处理一个字符的5种方法
2015/05/21 Python
python如何让类支持比较运算
2018/03/20 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
会计工作检讨书
2015/02/19 职场文书
学生会招新宣传语
2015/07/13 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python
Nginx 匹配方式
2022/05/15 Servers