Heim >Backend-Entwicklung >PHP-Tutorial >关于php的printf系列函数的文章进行排错,虽已100%测试过。

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

WBOY
WBOYOriginal
2016-06-06 20:47:581062Durchsuche

字符相关:

%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:以上的例子可以自由组合搭配使用!
*/

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

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

    echo "<b>1、 fprintf</b>将一个编辑后的字符串写入一个(文件系统)文本文件中。只能调用fopen函数使用'w'参数来写入!<br>";
    $file = fopen("./printf/fprintf.txt","w");
    echo '已写入文本文件中并返回该编辑后的字符串长度为:<b>'.fprintf($file,"The %d contains %s",$number,$str).'</b><br>';

//1.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。

    echo "<b>1.5、vfprintf</b>使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。<br>";
    $file = fopen("./printf/vfprintf.txt","w");
    echo '已写入文本文件中并返回该编辑后的字符串长度为:<b>'.vfprintf($file,"The %d contains %s",array($number,$str)).'</b><hr>';

//2、使用方式相同,惟一不同的是编辑后的字符串直接输出,它将取消掉了调用fopen函数的参数。

    echo "<b>2、printf</b>它取消掉了调用fopen函数的参数,直接输出了!<br>";
    printf("The %d contains %s<br>",$number,$str);

//2.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。

    echo "<b>2.5、vprintf</b>使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。<br>";
    vprintf("The %d contains %s<hr>",array($number,$str));

//3、使用方式相同,惟一不同的是编辑后的字符串赋值到一个变量中去,等待后续使用。

    echo "<b>3、sprintf</b>输出该编辑后的字符串赋值的变量。<br>";
    echo $a = sprintf("The %d contains %s<br>",$number,$str);

//3.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。

    echo "<b>3.5、vsprintf</b>使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。<br>";
    echo $a = vsprintf("The %d contains %s<hr>",array($number,$str));
</code>

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

回复内容:

字符相关:

%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:以上的例子可以自由组合搭配使用!
*/

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

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

    echo "<b>1、 fprintf</b>将一个编辑后的字符串写入一个(文件系统)文本文件中。只能调用fopen函数使用'w'参数来写入!<br>";
    $file = fopen("./printf/fprintf.txt","w");
    echo '已写入文本文件中并返回该编辑后的字符串长度为:<b>'.fprintf($file,"The %d contains %s",$number,$str).'</b><br>';

//1.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。

    echo "<b>1.5、vfprintf</b>使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。<br>";
    $file = fopen("./printf/vfprintf.txt","w");
    echo '已写入文本文件中并返回该编辑后的字符串长度为:<b>'.vfprintf($file,"The %d contains %s",array($number,$str)).'</b><hr>';

//2、使用方式相同,惟一不同的是编辑后的字符串直接输出,它将取消掉了调用fopen函数的参数。

    echo "<b>2、printf</b>它取消掉了调用fopen函数的参数,直接输出了!<br>";
    printf("The %d contains %s<br>",$number,$str);

//2.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。

    echo "<b>2.5、vprintf</b>使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。<br>";
    vprintf("The %d contains %s<hr>",array($number,$str));

//3、使用方式相同,惟一不同的是编辑后的字符串赋值到一个变量中去,等待后续使用。

    echo "<b>3、sprintf</b>输出该编辑后的字符串赋值的变量。<br>";
    echo $a = sprintf("The %d contains %s<br>",$number,$str);

//3.5、使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。

    echo "<b>3.5、vsprintf</b>使用方式相同,惟一不同的是它把存放对应变量的参数可以作为数组方式传入。<br>";
    echo $a = vsprintf("The %d contains %s<hr>",array($number,$str));
</code>

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn