定义

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 
收藏 打印