资讯专栏INFORMATION COLUMN

关于php的printf系列函数的文章进行排错,虽已100%测试过。

nifhlheimr / 1829人阅读

摘要:如果对应的变量中的值是个科学记数法的值,它会进行压缩然后插入到原字符串对应的符号位置,例如按照常规转换为如果使用它会压缩转换为。它取消掉了调用函数的参数,直接输出了使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。

字符相关:

%s - 对应的变量双引号"中的值按照原样的内容插入到原字符串对应的"%s"符号位置。

%c - 参考"百度百科->标准ASCII表"相当于chr函数,可以接受整型或者字符串整型,
但只能接受十进制(64~127)、"Dec字段"、的ASCII值,然后插入原字符串中。

数字相关:

%d - 对应的变量是个整数或者字符串整数,它会按原样内容插入到原字符串对应的"%d"符号位置。

%f - 对应的变量是本地载取的浮点数,然后插入到原字符串对应的"%f"符号位置。

%F - 对应的变量是非本地载取的浮点数,然后插入到原字符串对应的"%F"符号位置。

%u - 对应的变量是个字符串整数并且还添加"符号",它会将把变量中的"符号"去除形成一个纯整数,然后插入到原字符串对应的"%u"符号位置。

%b - 如果对应的变量是个整型或者字符串整型,它会把原来的整型数字变量转换为一个二进制的格式,然后插入到原字符串对应的"%b"符号位置。默认整型为十进制!

%o - 如果对应的变量是个整型或者字符串整型,它会把原来的整型数字变量转换为一个八进制的格式,然后插入到原字符串对应的"%o"符号位置。默认整型为十进制!

%x - 如果对应的变量是个整型或者字符串整型,它会把原来的整型数字变量转换为一个十六进制的格式,然后插入到原字符串对应的"%x"符号位置。默认整型为十进制!

%X - 它和 "%X" 使用的方式基本相同,惟一不同的是它会将十六进制整数的字母转换为大写,然后插入到原字符串对应的"%X"符号位置。默认整型为十进制!

%e - 对应的变量必须是一个"科学记数法"的值 例如:"1.5e+3" 转换为:1.500000e+3 然后插入到原字符串对应的"%e"符号位置。

%E - 它和 "%e" 使用的方式基本相同,惟一不同的是它会将 "科学记数法" 中的 "e" 转换为大写的 "E" ,然后插入到原字符串对应的"%E"符号位置。

%g - 1、如果对应的变量中的值是个浮点数,
(小数点后面必须跟着是000,否则会按原样插入原字符串中。比如:小数点后面001!)
它会转换为整数插入到原字符串对应的"%g"符号位置。
2、如果对应的变量中的值是个"科学记数法"的值,它会进行压缩然后插入到原字符串对应的"%g"符号位置,
例如:"1.5e+3" 按照常规转换为:"1.500000e+3" 如果使用 "%g" 它会压缩转换为 "1500" 。

%G - 它和 "%g" 使用的方式基本相同,惟一不同的是它会将 "科学记数法" 中的 "e" 转换为大写的 "E" ,然后插入到原字符串对应的"%G"符号位置。

其它:

%% - 不需要对应的变量作为参数,直接插入一个"%"符号。

例子用法:

1、
%(数字)$(s、c、d、f、F、u、b、o、x、X、e、E、g、G或者%的参数)
这个数字的意思是将对应的变量进行重新排序,例如:"The %2$s hello %1$d world"
"1$"表示对应着第一个变量参数,
"2$"表示对应着第二个变量参数。以此类推!
适用范围:s、c、d、f、F、u、b、o、x、X、e、E、g、G或者%的参数。

2、
还可以使用对应的单个变量重复叠加,例如:"The %1$d hello %1$d world"它会将第一个变量参数重复叠加在这2个位置。
适用范围:s、c、d、f、F、u、b、o、x、X、e、E、g、G或者%的参数。

3、
字符"%%"的使用大部份都会用在将"%s、c、d、f、F、u、b、o、x、X、e、E、g、G或者%的参数的原形输出
例如:"%%s"转换后输出为"%s"。
适用范围:s、c、d、f、F、u、b、o、x、X、e、E、g、G或者%的参数。

4、
如果对应的变量为字符串,可以将这个字符串的前面添加自定义的字符(重复字符)
例如:$a = "hello"; 可以使用"%"#10s"转换输出为:#####hello。
注意:"[%"#10s]"字符中的"10"的数字必须大于原字符串的字符数量,大于5个就添加5个自定义的字符(重复字符)。
自定义的字符前面必须加上单引号,如果只是添加"0"则不需要单引号。
例如:$a = 8; 可以使用"%02s"转换输出为:08。
适用范围:s、d、b、u、o、x、X、g、G。

5、
如果对应的变量为字符串,可以载取一段插入到原字符串,字符个数为载取单位。
例如:$a = "hello"; 可以使用"%2.2s"载取输出为"he",意思是载取了2个字符。
适用范围:s、e、E、g、G。

6、
如果对应的变量为浮点数,可以转换为整数,不保留小数点后的数字
例如:$a = 123.321; 可以使用"%d"转换输出为:123。
适用范围:d、

5、
如果对应的变量为整数,可以转换为浮点数插入到原字符串,默认小数点后面添加6个"0"。
例如:$a = 123; 可以使用"%0.2f"转换输出为:123.00。
注意:只能添加"0"的参数!
适用范围:f、F。

6、
如果对应的变量为浮点数,可以定义保留小数点后的数字个数(定义多少个个数)然后插入到原字符串
例如:$a = 123.123; 可以使用"%01.2f"转换输出为:123.12,定义只保留2个小数点后的数字的个数。
适用范围:f、F、e、E。

7、
如果对应的变量为整数,可以在这个整数前面加上"+"符号,如果这个整数是负数则无效,它会按负数的整数原样插入到原字符串。
例如:$a = 10; 可以使用"%+d"转换输出为:"+10"。
适用范围:d、f、F、e、E、g、G。

8、
字符"%u"的使用大部份都会用在一个负数的整型上,还记得整型的最大值吗?是:4294967296。
如果是负数的整型将减去"4294967296"的数,输出减去后的余数。
例如:$a = -10; 使用"%u"参数后,4294967296减10是多少?转换输出当然是4294967286。
注意:如果使用"%d"去转换"4294967286"的话,它会返回"-10"。
适用范围:u。

9、
如果对应的变量为字符串,可以将这个字符串使用空格右移一点,或者左移一点。
例如:$a = "hello"; 可以使用"[%10s]"转换输出为:[ hello] 。
例如:$a = "hello"; 可以使用"[%-10s]"转换输出为:[hello ] 。
适用范围:s、d、f、F、u、b、o、x、X、g、G。

PS:以上的例子可以自由组合搭配使用!

//对应的变量:(本文件通用)
$str = "Hello";
$number = 886;

//1、将一个编辑后的字符串写入一个(文件系统)文本文件中。必须只能调用fopen函数写入!
//第一个参数是定义fopen函数使用"w"参数来写入一个自定义名的文本文件,可以是txt、php或doc类型的,只要是文本文件都是可以的!
//第二个参数是定义需要编辑的原字符串,在原字符串的中间插入字符,在原字符串插入字符的位置使用"%"表示。

    echo "1、 fprintf将一个编辑后的字符串写入一个(文件系统)文本文件中。只能调用fopen函数使用"w"参数来写入!
"; $file = fopen("./printf/fprintf.txt","w"); echo "已写入文本文件中并返回该编辑后的字符串长度为:".fprintf($file,"The %d contains %s",$number,$str)."
"; //1.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。 echo "1.5、vfprintf使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。
"; $file = fopen("./printf/vfprintf.txt","w"); echo "已写入文本文件中并返回该编辑后的字符串长度为:".vfprintf($file,"The %d contains %s",array($number,$str))."
"; //2、使用方式相同,惟一不同的是编辑后的字符串直接输出,它将取消掉了调用fopen函数的参数。 echo "2、printf它取消掉了调用fopen函数的参数,直接输出了!
"; printf("The %d contains %s
",$number,$str); //2.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。 echo "2.5、vprintf使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。
"; vprintf("The %d contains %s
",array($number,$str)); //3、使用方式相同,惟一不同的是编辑后的字符串赋值到一个变量中去,等待后续使用。 echo "3、sprintf输出该编辑后的字符串赋值的变量。
"; echo $a = sprintf("The %d contains %s
",$number,$str); //3.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。 echo "3.5、vsprintf使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。
"; echo $a = vsprintf("The %d contains %s
",array($number,$str));

输出如下:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20651.html

相关文章

  • 业务开发中调试方法总结

    摘要:业务开发中的调试方法总结这段时间,接触了单元测试,同时业务中遇到了一些需要排错调试的情况,就把自己的经验做个小结。但是如果你的业务经常变化,但是变化的部分并不会影响单元测试,那这种情况下的单元测试性价比就很高。 业务开发中的调试方法总结 这段时间,接触了单元测试,同时业务中遇到了一些需要排错调试的情况,就把自己的经验做个小结。 3种调试方法 狼叔说,常见的三种调试的境界 初级: 打l...

    KaltZK 评论0 收藏0
  • 惠新宸:我也曾经是“不适合”编程

    摘要:惠新宸是核心开发者,,的主要开发者。我在本科毕业的时候,也尝试找了一些开发工作,面试了几个单位,都被拒了,也许在当时面试我的那些人眼里,我就是一个不适合编程的人吧。 非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/article/142454 惠新宸@Laruence,是国内最有影响力的PHP技术专家,PHP开发组核心成...

    lucas 评论0 收藏0
  • 联盛德W806-KIT开发板试用评测系列之二:ADC 功能使用与测试

    摘要:联盛德开发板试用评测系列之二功能使用与测试作者大信今天着手对开发板功能做测试,都知道在物联网应用场景中常需要用到的一个重要技术。 联盛德W806-KIT开发板试用评测系列 之二:ADC 功能使用与测试 作者:大信 今天着手对W806开发板ADC功能做测试,都知道ADC在物联网应用场景中常需...

    qc1iu 评论0 收藏0

发表评论

0条评论

nifhlheimr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<