php fprintf()函数

时间:2017-03-19
php fprintf()函数将格式化的字符串写入指定的输出流。本文章向大家介绍php fprintf()函数的基本使用方法和实例,需要的朋友可以参考一下。

定义

fprintf()函数将格式化的字符串写入指定的输出流。

语法

PHP fprintf()函数具有以下语法。

fprintf(stream,format,arg1,arg2,arg++)

参数

参数 是否必须 描述
stream 需要。 规定在哪里写入/输出字符串
format 需要。 规定字符串以及如何格式化其中的变量。
arg1 需要。 规定插到 format 字符串中第一个 % 符号处的参数。
arg2 可选的。 规定插到 format 字符串中第二个 % 符号处的参数
arg ++ 可选的。 规定插到 format 字符串中第三、四等等 % 符号处的参数。

format可能的值:

  • %% - 返回百分号
  • %b - 二进制数
  • %c - ASCII 值对应的字符
  • %d - 带符号的十进制数(负数,零或正数)
  • %e - 使用小写字母的科学记数法(例如1.2e + 2)
  • %E - 使用大写字母的科学记数法(例如1.2E + 2)
  • %u - 无符号十进制数(等于或大于零)
  • %f - 浮点数(本地设置)
  • %F - 浮点数(非本地设置)
  • %g - 较短的%e和%f
  • %G - 较短的%E和%f
  • %o - 八进制数
  • %s - 字符串
  • %x - 十六进制数字(小写字母)
  • %X - 十六进制数字(大写字母)

format的其他值

格式 含义
+ 强制+和-在数字前面 。默认情况下,只标记负数
'' 设置要用作填充的内容。默认为空格。必须与width说明符一起使用。示例:%'x20s这使用“x”作为填充
-- 左对齐变量值
[0-9] 将保持的最小宽度设置为变量值
.[0-9] 设置小数位数或最大字符串长度

多个附加格式值的顺序必须与上述相同。

返回值

PHP fprintf()函数返回写入的字符串的长度。

相关功能

printf(), sprintf(), vprintf(), vsprintf() and vfprintf()

实例1

将一些文本写入名为“test.txt”的文本文件:

<?php
/*
http://www.manongjc.com/article/1797.html
作者:码农教程
*/
$number = 1;
$str = "PHP";
$file = fopen("test.txt","w");
echo fprintf($file,"There are %u million developers using %s.",$number,$str);
echo fprintf($file,"%f",$number);


?>

上面的代码生成以下结果:

48

实例2

使用占位符:

<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"With 2 decimals: %1\$.2f
\nWith no decimals: %1\$u",$number);
?>

实例3

使用printf()来演示所有可能的格式值:

<?php
/*
http://www.manongjc.com/article/1797.html
作者:码农教程
*/
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // The ASCII Character 50 is 2

// Note: The format value "%%" returns a percent sign
printf("%%b = %b \n",$num1); // Binary number
printf("%%c = %c \n",$char); // The ASCII Character
printf("%%d = %d \n",$num1); // Signed decimal number
printf("%%d = %d \n",$num2); // Signed decimal number
printf("%%e = %e \n",$num1); // Scientific notation (lowercase)
printf("%%E = %E \n",$num1); // Scientific notation (uppercase)
printf("%%u = %u \n",$num1); // Unsigned decimal number (positive)
printf("%%u = %u \n",$num2); // Unsigned decimal number (negative)
printf("%%f = %f \n",$num1); // Floating-point number (local settings aware)
printf("%%F = %F \n",$num1); // Floating-point number (not local settings aware)
printf("%%g = %g \n",$num1); // Shorter of %e and %f
printf("%%G = %G \n",$num1); // Shorter of %E and %f
printf("%%o = %o \n",$num1); // Octal number
printf("%%s = %s \n",$num1); // String
printf("%%x = %x \n",$num1); // Hexadecimal number (lowercase)
printf("%%X = %X \n",$num1); // Hexadecimal number (uppercase)
printf("%%+d = %+d \n",$num1); // Sign specifier (positive)
printf("%%+d = %+d \n",$num2); // Sign specifier (negative)
?>

上面的代码生成以下结果:

%b = 111010110111100110100010101 
%c = 2 
%d = 123456789 
%d = -123456789 
%e = 1.234568e+8 
%E = 1.234568E+8 
%u = 123456789 
%u = 18446744073586094827 
%f = 123456789.000000 
%F = 123456789.000000 
%g = 1.23457e+8 
%G = 1.23457E+8 
%o = 726746425 
%s = 123456789 
%x = 75bcd15 
%X = 75BCD15 
%+d = +123456789 
%+d = -123456789