Maison >développement back-end >tutoriel php >PHP écrit la chaîne formatée dans la fonction de flux de sortie spécifiée vfprintf()

PHP écrit la chaîne formatée dans la fonction de flux de sortie spécifiée vfprintf()

黄舟
黄舟original
2017-11-07 09:08:17992parcourir

Exemple

Écrivez du texte dans un fichier texte nommé "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));
?>

Le code ci-dessus affichera :

40

Ce qui suit le texte sera écrit dans le fichier "test.txt":

There are 9 million bicycles in Beijing.

Définition et utilisation

La fonction vfprintf() convertit la chaîne formatée Écrit dans la sortie spécifiée flux (par exemple : fichier ou base de données).

Contrairement à fprintf(), les arguments de vfprintf() sont dans un tableau. Les éléments du tableau seront insérés dans la chaîne principale avec des signes de pourcentage (%). Cette fonction est exécutée étape par étape. Au premier signe %, le premier élément du tableau est inséré, au deuxième signe %, le deuxième élément du tableau est inséré, et ainsi de suite.

Remarque : S'il y a plus de symboles % que d'arguments arg, vous devez utiliser des espaces réservés. L'espace réservé est inséré après le symbole % et se compose d'un nombre suivi de "$". Voir l'exemple 2.

Astuce : Fonctions associées : fprintf(), printf(), sprintf(), vprintf() et vsprintf()

Syntaxe

vfprintf(stream,format,argarray)
Description
Paramètres
stream Obligatoire. Spécifie où les chaînes sont écrites/sorties.
format Obligatoire. Spécifie une chaîne et comment formater les variables qu'elle contient.
参数 描述
stream 必需。规定在哪里写入/输出字符串。
format 必需。规定字符串以及如何格式化其中的变量。

可能的格式值:

  • %% - 返回一个百分号 %

  • %b - 二进制数

  • %c - ASCII 值对应的字符

  • %d - 包含正负号的十进制数(负数、0、正数)

  • %e - 使用小写的科学计数法(例如 1.2e+2)

  • %E - 使用大写的科学计数法(例如 1.2E+2)

  • %u - 不包含正负号的十进制数(大于等于 0)

  • %f - 浮点数(本地设置)

  • %F - 浮点数(非本地设置)

  • %g - 较短的 %e 和 %f

  • %G - 较短的 %E 和 %f

  • %o - 八进制数

  • %s - 字符串

  • %x - 十六进制数(小写字母)

  • %X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)

  • ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充))

  • - (左调整变量值)

  • [0-9] (规定变量值的最小宽度)

  • .[0-9] (规定小数位数或最大字符串长度)

注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。

argarray 必需。带有参数的一个数组,这些参数会被插到 format 字符串中的 % 符号处。
Valeurs de format possibles :
  • %% - renvoie un signe de pourcentage %
  • %b - nombre binaire
  • %c - caractère correspondant à la valeur ASCII
  • %d - Nombre décimal avec signe (négatif, 0, positif)
  • %e - Utiliser la notation scientifique minuscule (par exemple 1.2e+2)
  • %E - Utiliser la notation scientifique en majuscules (par exemple 1,2E+2)
  • %u - Aucun signe Nombre décimal (supérieur ou égal à 0)
  • %f - nombre à virgule flottante (paramètres locaux)
  • %F - nombre à virgule flottante (paramètres non locaux)
  • %g - %e et %f plus courts
  • %G - %E et %f plus courts
  • %o - nombre octal
  • %s - chaîne
  • % x - nombre hexadécimal (lettres minuscules)
  • %X - nombre hexadécimal (lettres majuscules)
Valeurs de format supplémentaires. Doit être placé entre % et des lettres (telles que %.2f) :
  • + ( Ajoutez + ou - devant le nombre pour définir le signe du nombre. Par défaut, seuls les nombres négatifs sont marqués, et les nombres positifs ne sont pas marqués)
  • ' (précisez quoi. à utiliser. Comme remplissage, la valeur par défaut est des espaces. Il doit être utilisé avec des spécificateurs de largeur : %'x20s (utilisez "x" comme remplissage)
  • - (ajustement à gauche. valeur variable).
  • [0-9] (Spécifie la largeur minimale de la valeur variable)
  • .[0-9>. ] (Spécifie le nombre de décimales ou la longueur maximale de la chaîne)
Remarque : si plusieurs valeurs de format ci-dessus sont utilisées, elles doivent être utilisées dans l'ordre ci-dessus et ne peuvent pas être perturbé.
argarray Obligatoire. Un tableau avec des paramètres à insérer dans la chaîne de format aux symboles %.

技术细节

返回值: 返回被写的字符串的长度。
PHP 版本: 5+

更多实例

实例 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中。    

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn