تابع PHP vfprintf()
مثال
متن به فایل نوشته خواهد شد:
<?php $number = 9; $str = "Beijing"; $file = fopen("test.txt","w"); echo vfprintf($file,"There are 쥕lion bicycles in %s.",array($number,$str)); ?>
کد بالا به صورت زیر خروجی خواهد داد:
40
متن زیر به فایل "test.txt" نوشته خواهد شد:
There are 9 million bicycles in Beijing.
تعریف و نحوه استفاده
تابع vfprintf() رشته فرمتبندی شده را به جریان خروجی مشخص شده (مثلاً فایل یا پایگاه داده) مینویسد.
برخلاف fprintf()، پارامترها در vfprintf() در یک آرایه قرار دارند. عناصر آرایه به ترتیب در جای علامتهای % در رشته اصلی قرار میگیرند. این تابع به صورت مرحلهای اجرا میشود. در اولین علامت %، اولین عنصر آرایه قرار میگیرد، در دومین علامت %، دومین عنصر آرایه قرار میگیرد و به همین ترتیب.
توضیح:اگر علامت % بیشتر از arg اگر پارامترها باشند، باید از جایگیرنده استفاده کنید. جایگیرنده پس از علامت % قرار میگیرد و از عدد و "\$" تشکیل شده است. به مثال 2 مراجعه کنید.
تابعهای مرتبط:
نحوه استفاده
vfprintf(stream,قالببندی,argarray)
پارامترها | توضیح |
---|---|
stream | ضروری. تعیین میکند کجا باید رشته نوشته یا خوانده شود. |
قالببندی |
ضروری. تعیین میکند رشته و چگونه متغیرها در آن فرمتبندی میشوند. مقدارهای فرمت ممکن:
مقدار فرمت اضافی. باید بین % و حرف قرار گیرد (مثلاً %.2f):
توضیح:اگر از چندین مقدار فرمتپذیر استفاده شود، باید به ترتیب بالا باشند. |
argarray | ضروری. یک آرایه با پارامترها، که باید در جاهای مشخص شده به جای آنها قرار گیرند. قالببندی در نشانههای % در رشته. |
جزئیات فنی
مقدار بازگشتی: | طول رشته نوشته شده را برمیگرداند. |
نسخه 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: %1$.2f \nبدون اعداد اعشاری: %1$u",array($number)); ?>
متن زیر به فایل "test.txt" نوشته خواهد شد:
با 2 عدد اعشاری: 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); // توضیح نشانگر (منفی) ?>