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基础之运算符的使用方法
Apr 28 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
php调用google接口生成二维码示例
Apr 28 PHP
PHP开发微信支付的代码分享
May 25 PHP
Laravel5中contracts详解
Mar 02 PHP
PHP查询快递信息的方法
Mar 07 PHP
php准确计算复活节日期的方法
Apr 18 PHP
PHP面试题之文件目录操作
Oct 15 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
vue移动端的左右滑动事件详解
2020/06/17 Javascript
Python中property属性实例解析
2018/02/10 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Django app配置多个数据库代码实例
2019/12/17 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
打架检讨书50字
2014/01/11 职场文书
会计人员岗位职责
2014/03/19 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
开学随笔
2015/08/15 职场文书
心得体会格式及范文
2016/01/25 职场文书
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS