Definisi dan Penggunaan
Fungsi fprintf()
digunakan untuk dapat menulis string yang diformat ke aliran keluaran yang ditentukan (contoh: file atau database).
Parameter arg1, arg2, ++ akan disisipkan pada tanda persen (%) di string utama. Fungsi ini bekerja “step by step”. Pada tanda% pertama, arg1 dimasukkan, pada tanda% kedua, arg2 dimasukkan, dll.
Catatan: Jika ada lebih tanda % daripada argumen, maka harus menggunakan placeholder. Placeholder disisipkan setelah tanda% dan terdiri dari nomor argumen dan “\$”. Lihat contoh dua.
Tip: Fungsi terkait: printf (), sprintf (), vprintf (), vsprintf ()
dan vfprintf ()
Syntax
fprintf(stream,format,arg1,arg2,arg++)
Nilai Parameter
Parameter | Deskripsi |
---|---|
stream | Required. Menentukan tempat untuk menulis / mengeluarkan string |
format | Required. Menentukan string dan cara memformat variabel di dalamnya. Nilai format yang memungkinkan: %% – Mengembalikan tanda persen % b – Bilangan biner % c – Karakter sesuai dengan nilai ASCII % d – Angka desimal bertanda tangan (negatif, nol atau positif) % e – Notasi ilmiah menggunakan huruf kecil (misalnya 1.2e + 2) % E – Notasi ilmiah menggunakan huruf besar (misalnya 1.2E + 2) % u – Angka desimal tak bertanda (sama dengan atau lebih besar dari nol) % f – Angka floating-point (pengaturan lokal sadar) % F – Angka floating-point (tidak diketahui pengaturan lokal) % g – lebih pendek dari% e dan% f % G – lebih pendek dari% E dan% f % o – Nomor oktal % s – String % x – Angka heksadesimal (huruf kecil) % X – Angka heksadesimal (huruf besar) Nilai format tambahan. Ini ditempatkan di antara% dan huruf (contoh% .2f): (Memaksa + dan – di depan angka. Secara default, hanya angka negatif yang ditandai) ‘(Menentukan apa yang akan digunakan sebagai pengisi. Defaultnya adalah spasi. Harus digunakan bersama dengan penentu lebar. Contoh:%’ x20s (ini menggunakan “x” sebagai pengisi) (Kiri-membenarkan nilai variabel) [0-9] (Menentukan lebar minimum yang dipegang dari nilai variabel) . [0-9] (Menentukan jumlah digit desimal atau panjang string maksimum) Catatan: Jika beberapa nilai format tambahan digunakan, urutannya harus sama seperti di atas. |
arg1 | Required. Argumen yang akan disisipkan di%pertama -sign dalam format string |
arg2 | Optional. Argumen yang akan disisipkan di%kedua -sign dalam format string |
arg++ | Optional. Argumen yang akan disisipkan di ketiga, keempat, dll.tanda% -Sign dalam format string |
Detail Teknis
Return Value: | Mengembalikan panjang string yang tertulis |
---|---|
PHP Version: | 5+ |
Contoh 1
Tulis beberapa teks ke file teks bernama “test.txt”:
<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo fprintf($file,"Ada %u juta sepeda di %s.",$number,$str);
?>
/* Output :
40
Ada 9 juta sepeda di Beijing.
Contoh 2
Tulis beberapa teks ke file:
xxxxxxxxxx
<?php
$number = 145;
$file = fopen("test.txt","w");
fprintf($file,"%f",$number);
?>
//Output : 145.000000
Contoh 3
Penggunaan placeholder:
xxxxxxxxxx
<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"Dengan 2 desimal: %1\$.2f
\nTanpa desimal: %1\$u",$number);
?>
/* output :
Dengan 2 desimal: 123.00
Tanpa desimal: 123
Contoh 4
Menggunakan printf() untuk mendemonstrasikan semua kemungkinan nilai format:
xxxxxxxxxx
<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Karakter ASCII 50 adalah 2
// Catatan: Nilai format "%%" mengembalikan tanda persen
printf("%%b = %b <br>",$num1); // Binary number
printf("%%c = %c <br>",$char); // ASCII karakter
printf("%%d = %d <br>",$num1); // Angka desimal bertanda tangan
printf("%%d = %d <br>",$num2); // Angka desimal bertanda tangan
printf("%%e = %e <br>",$num1); // Notasi ilmiah (lowercase)
printf("%%E = %E <br>",$num1); // Notasi ilmiah (uppercase)
printf("%%u = %u <br>",$num1); // Angka desimal tak bertanda tangan (positive)
printf("%%u = %u <br>",$num2); // Angka desimal tak bertanda tangan (negative)
printf("%%f = %f <br>",$num1); // Angka floating-point (local settings aware)
printf("%%F = %F <br>",$num1); // Angka floating-point (not local settings aware)
printf("%%g = %g <br>",$num1); // Lebih pendek dari %e dan %f
printf("%%G = %G <br>",$num1); // Lebih pendek dari %E dan %f
printf("%%o = %o <br>",$num1); // Octal number
printf("%%s = %s <br>",$num1); // String
printf("%%x = %x <br>",$num1); // Bilangan Hexadecimal (lowercase)
printf("%%X = %X <br>",$num1); // Bilangan Hexadecimal (uppercase)
printf("%%+d = %+d <br>",$num1); // Sign specifier (positive)
printf("%%+d = %+d <br>",$num2); // Sign specifier (negative)
?>
/* Output :
%b = 111010110111100110100010101
%c = 2
%d = 123456789
%d = -123456789
%e = 1.234568e+8
%E = 1.234568E+8
%u = 123456789
%u = 18446744073586094827
%f = 123456789.000000
%F = 123456789.000000
%g = 1.23457e+8
%G = 1.23457E+8
%o = 726746425
%s = 123456789
%x = 75bcd15
%X = 75BCD15
%+d = +123456789
%+d = -123456789