توابع 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); // توضیح نشانهگذار (منفی) ?>