توابع fprintf() پهپه

مثال

متن به فایل متنی به نام "test.txt" نوشته می‌شود:

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo fprintf($file,"There are 쥕lion bicycles in %s.",$number,$str);
?>

خروجی کد بالا:

40

متن زیر به فایل "test.txt" نوشته خواهد شد:

There are 9 million bicycles in Beijing.

تعریف و استفاده

توابع fprintf() رشته‌ی فرمت شده را به جریان خروجی مشخصی نوشته می‌کند (مثلاً فایل یا بانک اطلاعاتی).

arg1،arg2،arg++ پارامترها در نشانه‌های درصد (%) رشته‌ی اصلی قرار می‌گیرند. این توابع به صورت مرحله‌ای اجرا می‌شوند. در نشانه‌ی % اول، arg1، در نشانه‌ی % دوم، arg2، به ترتیب ادامه می‌یابد.

نکته:اگر نشانه‌های % بیشتر از arg اگر پارامترها باشد، باید از نشانه‌های نگهدارنده استفاده کنید. نشانه‌های نگهدارنده در پس از % نمادگذاری می‌شوند، که از اعداد و "\$" تشکیل شده‌اند. به مثال 2 مراجعه کنید.

توابع مرتبط:

قوانین

fprintf(stream,قالب‌بندی,arg1,arg2,arg++)
پارامترها شرح
stream ضروری. تعیین مکان نوشتن/خروجی رشته.
قالب‌بندی

ضروری. تعیین رشته و نحوه فرمت کردن متغیرهای موجود در آن.

ممکن است که مقادیر فرمت:

  • %% - بازگشت یک علامت درصد %
  • %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 - عدد 16-ریختی (حروف کوچک)
  • %X - عدد 16-ریختی (حروف بزرگ)

کامپوزیشن فرمت. ضروری است که بین % و حروف قرار گیرد (مثلاً %.2f):

  • + (در جلوی عدد '+' یا '-' برای تعیین مثبت یا منفی بودن عدد استفاده می‌شود)
    به طور پیش‌فرض، فقط اعداد منفی دارای نشانه هستند و اعداد مثبت ندارند
  • ' (مشخص می‌کند که از چه چیزی به عنوان پرکننده استفاده شود، پیش‌فرض فاصله است. باید با مشخص‌کننده عرض استفاده شود)
    مثال: '%x20s' (از 'x' به عنوان پرکننده استفاده می‌شود)
  • [0-9] (مشخص می‌کند که حداقل عرض رشته‌ای که باید داشته باشد)
  • [0-9] (مشخص می‌کند که تعداد ارقام اعشاری یا طول بیشترین رشته را تعیین کند)

نکته:اگر از چندین ارزش فرمت اضافی استفاده شود، باید به ترتیب بالا استفاده شوند.

arg1 ضروری. مشخص می‌کند که کدام یک از قالب‌بندی پارامترها در نشانه‌های %% در رشته.
arg2 اختیاری. مشخص می‌کند که کدام یک از قالب‌بندی پارامترها در نشانه‌های %% در رشته.
arg++ اختیاری. مشخص می‌کند که کدام یک از قالب‌بندی پارامترها در نشانه‌های %% در رشته.

جزئیات فنی

مقدار بازگشتی: طول رشته نوشته شده را برمی‌گرداند.
نسخه PHP: 5+

مثال‌های بیشتر

مثال 1

نوشتن متن به فایل:

<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"%%f", $number);
?>

متن زیر به فایل "test.txt" نوشته خواهد شد:

123.000000

مثال 2

استفاده از نشان‌گرها:

<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"با دو عدد اعشاری:%1$.2f
\nبدون عدد اعشاری:%1$u", $number);
?>

متن زیر به فایل "test.txt" نوشته خواهد شد:

با دو عدد اعشاری: 123.00
بدون عدد اعشاری: 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); // 科学计数法(大写)
پرنٹف("%鑾u <br>",$num1); // ناقص عدد (موجب)
پرنٹف("%鑾u <br>",$num2); // ناقص عدد (منفی)
پرنٹف("%%f = %f <br>",$num1); // فلوٹنگ پوائنٹ (مقیم)
پرنٹف("%%F = %F <br>",$num1); // فلوٹنگ پوائنٹ (بغیر مقیم)
پرنٹف("%%g = %g <br>",$num1); // کوتاه از %e اور %f
پرنٹف("%%G = %G <br>",$num1); // کوتاه از %E اور %f
پرنٹف("%%o = %o <br>",$num1); // آٹوکسی
پرنٹف("%%s = %s <br>",$num1); // ناگزار
پرنٹف("%%x = %x <br>",$num1); // شانسی عدد (کوچک)
پرنٹف("%%X = %X <br>",$num1); // شانسی عدد (بزرگ)
پرنٹف("%%+d = %+d <br>",$num1); // علامت معرف (موجب)
پرنٹف("%%+d = %+d <br>",$num2); // علامت معرف (منفی)
?>

چلانے والی مثال