Home > Article > Backend Development > PHP writes the formatted string to the specified output stream function vfprintf()
Example
Write some text to a text file named "test.txt":
<?php $number = 9; $str = "Beijing"; $file = fopen("test.txt","w"); echo vfprintf($file,"There are %u million bicycles in %s.",array($number,$str)); ?>
The above code will output:
40
The following text Will be written to the file "test.txt":
There are 9 million bicycles in Beijing.
Definition and usage
vfprintf() function writes the formatted string to the specified output stream (Example: file or database).
Unlike fprintf(), the parameters in vfprintf() are located in an array. Array elements will be inserted into the main string at the percent sign (%). This function is executed step by step. At the first % sign, the first array element is inserted, at the second % sign, the second array element is inserted, and so on.
Note: If there are more % symbols than arg arguments, you must use placeholders. The placeholder is inserted after the % symbol and consists of a number and "\$". See Example 2.
Tip: Related functions: fprintf(), printf(), sprintf(), vprintf() and vsprintf()
Syntax
vfprintf(stream,format,argarray)
Parameters | Description | ||||
stream | Required. Specifies where strings are written/output. | ||||
format | Required. Specifies a string and how to format variables within it. Possible format values:
+ (Add + or - in front of a number to define the sign of the number. By default, only Negative numbers are marked, positive numbers are not marked)
|
||||
技术细节
更多实例 实例 1 把一些文本写入到文件中: <?php $num1 = 123; $num2 = 456; $file = fopen("test.txt","w"); vfprintf($file,"%f%f",array($num1,$num2)); ?> 下面的文本将被写入到文件 "test.txt": 123.000000456.000000 实例 2 使用占位符: <?php $number = 123; $file = fopen("test.txt","w"); vfprintf($file,"With 2 decimals: %1$.2f nWith no decimals: %1$u",array($number)); ?> 下面的文本将被写入到文件 "test.txt": With 2 decimals: 123.00 With no decimals: 123 实例 3 使用 printf() 来演示所有可能的格式值: <?php $num1 = 123456789; $num2 = -123456789; $char = 50; // The ASCII Character 50 is 2 // Note: The format value "%%" returns a percent sign printf("%%b = %b <br>",$num1); // Binary number printf("%%c = %c <br>",$char); // The ASCII Character printf("%%d = %d <br>",$num1); // Signed decimal number printf("%%d = %d <br>",$num2); // Signed decimal number printf("%%e = %e <br>",$num1); // Scientific notation (lowercase) printf("%%E = %E <br>",$num1); // Scientific notation (uppercase) printf("%%u = %u <br>",$num1); // Unsigned decimal number (positive) printf("%%u = %u <br>",$num2); // Unsigned decimal number (negative) printf("%%f = %f <br>",$num1); // Floating-point number (local settings aware) printf("%%F = %F <br>",$num1); // Floating-point number (not local settings aware) printf("%%g = %g <br>",$num1); // Shorter of %e and %f printf("%%G = %G <br>",$num1); // Shorter of %E and %f printf("%%o = %o <br>",$num1); // Octal number printf("%%s = %s <br>",$num1); // String printf("%%x = %x <br>",$num1); // Hexadecimal number (lowercase) printf("%%X = %X <br>",$num1); // Hexadecimal number (uppercase) printf("%%+d = %+d <br>",$num1); // Sign specifier (positive) printf("%%+d = %+d <br>",$num2); // Sign specifier (negative) ?> vfprintf(格式化输出数据至文件) 相关函数 printf,fscanf,fprintf 表头文件 #include<stdio.h> #include<stdarg.h> int vfprintf(FILE *stream,const char * format,va_list ap); 函数说明 vfprintf()会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出现字符串结束(’/0’)为止。关于参数format字符串的格式请参考printf()。va_list用法请参考附录C或vprintf()范例。 成功则返回实际输出的字符数,失败则返回-1,错误原因存于errno中。 |
The above is the detailed content of PHP writes the formatted string to the specified output stream function vfprintf(). For more information, please follow other related articles on the PHP Chinese website!