توابع fprintf() در PHP

مثال

متن به فایل نوشته می‌شود: "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 - عدد شانسی (حروف کوچک)
  • %X - عدد شانسی (حروف بزرگ)

مقدار فرمت اضافی. باید بین % و حرف قرار گیرد (مثلاً %.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); // علمی‌نویسی (بزرگ‌نویسی)
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); // توضیح نشانه‌گذار (منفی)
?>

مثال‌های اجرایی