توابع 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 | ضروری. تعیین مکان نوشتن/خروجی رشته. |
| قالببندی |
ضروری. تعیین رشته و نحوه فرمت کردن متغیرهای موجود در آن. مقدارهای ممکن فرمت:
مقدار فرمت اضافی. باید بین % و حرف قرار گیرد (مثلاً %.2f):
توضیح:اگر از چندین فرمت اضافی استفاده میشود، باید به ترتیب بالا استفاده شوند. |
| 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); // توضیح نشانهگذار (منفی)
?>

