وظيفة PHP vfprintf()

مثال

كتابة النص في ملف نصي يسمى "test.txt":

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"هناك ӣون دراجة نارية في %s.",array($number,$str));
؟

سيتم إدخال الكود التالي:

40

سيتم كتابة النص التالي في ملف "test.txt":

هناك 9 مليون دراجة نارية في بكين.

التعريف والاستخدام

تسجيل النص الم格式 المسبق في التدفق المحدد (مثل ملف أو قاعدة بيانات).

مختلف عن fprintf()، يتم وضع 参数 في vfprintf() في مصفوفة. يتم إدراج عناصر المصفوفة في مكانة رمز % في النص الرئيسي. يتم تنفيذ هذه الوظيفة خطوة بخطوة. عند مكانة رمز % الأولى، يتم إدراج العنصر الأول من المصفوفة، عند مكانة رمز % الثانية، يتم إدراج العنصر الثاني من المصفوفة، وهكذا.

注释:إذا كان هناك % أكثر، الـ arg إذا كان هناك % أكثر، فيجب عليك استخدام مكانة احتياطية. يتم إدراج مكانة الاحتياطية بعد رمز %، مكونة من رقم و "\$". انظر مثال 2.

الوظائف ذات الصلة:

النحو

vfprintf(stream,format,argarray)
الم 参数 وصف
stream مطلوب. يحدد أين يتم كتابة/الإدخال النص
format

مطلوب. يحدد النص وكيفية تنسيقه

قيم تنسيق محتملة:

  • %% - عودة علامة النسبة المئوية %
  • %b - عدد ثنائي
  • %c - حرف يوافق قيمة ASCII
  • %d - عدد عشري يحتوي على إشارة (سالب، 0، إيجابي)
  • %e - استخدام حساب علمي صغير بالحروف الصغيرة (مثل 1.2e+2)
  • %E - استخدام حساب علمي كبير بالحروف الكبيرة (مثل 1.2E+2)
  • 誒دد عشري بدون إشارة (أكبر أو يساوي 0)
  • %f - عدد عشري (بإعدادات اللغة المحلية)
  • %F - عدد عشري (بإعدادات اللغة المحلية)
  • %g - %e القصير و %f
  • %G - %E القصير و %f
  • %o - عدد ثنائي
  • %s - نص
  • %x - عدد عشري (أحرف صغيرة)
  • %X - عدد عشري (أحرف كبيرة)

قيمة تنسيق إضافية. يجب وضعها بين % و الحرف (مثل %.2f):

  • + (إضافة + أو - أمام الرقم لتحديد إشارة الرقم. افتراضياً، يتم تسمية الأرقام السلبية فقط، والأرقام الإيجابية لا يتم تسميتها)
  • ‘ (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%%'x20s(使用 "x" 作为填充))
  • - (左调整变量值)
  • .[0-9] (规定变量值的最小宽度)
  • .[0-9] (规定小数位数或最大字符串长度)

注释:如果使用多个格式值,它们必须按照以上顺序。

argarray 必需。带有参数的一个数组,这些参数会被插到 format 字符串中的 %% 符号处。

技术细节

返回值: 返回被写字符串的长度。
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: %%f
\nWith no decimals: %眻,array($number));
؟

下面的文本将被写入到文件 "test.txt" 中:

With 2 decimals: 123.00
With no decimals: 123

例子 3

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

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注释:格式值 "%%" 返回百分号
printf("%%b = %%b <br>", $num1); // 二进制数
printf("%%c = %%c <br>", $char); // ASCII 字符
printf("%%d = %%d <br>", $num1); // 带符号的十进制数
printf("%%d = %%d <br>", $num2); // 带符号的十进制数
printf("%%e = %%e <br>", $num1); // 科学计数法(小写)
printf("%%E = %%E <br>", $num1); // 科学计数法(大写)
printf("%鑾u <br>",$num1); // 不带符号的十进制数(正)
printf("%鑾u <br>",$num2); // 不带符号的十进制数(负)
printf("%%f = %f <br>",$num1); // 浮点数(视本地设置)
printf("%%F = %F <br>",$num1); // 浮点数(不视本地设置)
printf("%%g = %g <br>",$num1); // 短于 %e 和 %f
printf("%%G = %G <br>",$num1); // 短于 %E 和 %f
printf("%%o = %o <br>",$num1); // 八进制数
printf("%%s = %s <br>",$num1); // 字符串
printf("%%x = %x <br>",$num1); // 十六进制数(小写)
printf("%%X = %X <br>",$num1); // 十六进制数(大写)
printf("%%+d = %+d <br>",$num1); // 符号说明符(正)
printf("%%+d = %+d <br>",$num2); // 符号说明符(负)
؟

运行实例