Fungsi PHP vfprintf()

Contoh

Tulis teks ke berkas teks bernama "test.txt":

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"Ada 윝a sepeda di %s.",array($number,$str));
?>

Kode di atas akan menampilkan:

40

Berikut teks yang akan ditulis ke berkas "test.txt":

Ada 9 juta sepeda di Beijing.

Definisi dan penggunaan

Fungsi vfprintf() menulis string yang diformat ke aliran keluar yang ditentukan (contoh: berkas atau database).

Beberapa perbedaan dengan fprintf(), parameter di vfprintf() berada dalam array. Elemen array akan disisihkan ke tempat simbol % di string utama. Fungsi ini berjalan secara bertahap. Di tempat simbol % pertama, elemen array pertama disisihkan, di tempat simbol % kedua, elemen array kedua disisihkan, dan seterusnya.

Keterangan:Jika simbol % lebih banyak arg Jika parameter ada, Anda harus menggunakan penanda. Penanda disisihkan setelah simbol %, diikuti dengan angka dan "\$". Lihat contoh 2.

Fungsi yang relevan:

Sintaks

vfprintf(stream,format,argarray)
Parameter Deskripsi
stream Diperlukan. Menentukan tempat menuliskan/mengeluarkan string.
format

Diperlukan. Menentukan string serta bagaimana mengformat variabel di dalamnya.

Nilai format yang mungkin:

  • %% - Mengembalikan tanda persen (%)
  • %b - Bilangan biner
  • %c - Karakter yang dipersetujui dengan nilai ASCII
  • %d - Bilangan desimal dengan tanda (+, -, 0, atau +)
  • %e - Gunakan bilangan eksponensial huruf kecil (contoh: 1.2e+2)
  • %E - Gunakan bilangan eksponensial huruf besar (contoh: 1.2E+2)
  • 蒛ilangan desimal tanpa tanda (+ atau -) (lebih besar atau sama dengan 0)
  • %f - Bilangan floating point (mengikuti setting lokal)
  • %F - Bilangan floating point (tidak mengikuti setting lokal)
  • %g - Singkat dari %e dan %f
  • %G - Singkat dari %E dan %f
  • %o - Bilangan oktal
  • %s - String
  • %x - Bilangan heksadesimal (huruf kecil)
  • %X - Bilangan heksadesimal (huruf besar)

Nilai format ekstra. Harus disisihkan dengan % dan huruf (contoh: %.2f):

  • + (Tambahkan + atau - untuk menentukan arah bilangan. Secara baku, hanya bilangan negatif yang di tandai, bilangan positif tidak ditandai)
  • ‘ (menentukan apa yang digunakan sebagai pengisi, standar adalah spasi. Ini harus digunakan bersamaan dengan penentu lebar. Misalnya:%'x20s(menggunakan "x" sebagai pengisi))
  • - (menyimkan lebar kiri variabel)
  • .[0-9] (menentukan lebar minimum nilai variabel)
  • .[0-9] (menentukan jumlah desimal atau panjang maksimal string)

Keterangan:Jika digunakan beberapa format value, mereka harus diurutkan seperti di atas.

argarray Diperlukan. Sebuah array parameter, yang akan disisipkan format Simbol % di dalam string.

Detil teknis

Nilai kembalian: Mengembalikan panjang string yang ditulis.
Versi PHP: 5+

更多实例

例子 1

把文本写入到文件中:

<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>

Teks berikut akan ditulis ke berkas "test.txt":

123.000000456.000000

例子 2

使用占位符:

<?php
$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"Dengan 2 desimal: %1$.2f
\nTanpa desimal: %1$u",array($number));
?>

Teks berikut akan ditulis ke berkas "test.txt":

Dengan 2 desimal: 123.00
Tanpa desimal: 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); // Bilangan Desimal Tanpa Tanda (positif)
printf("%鑾u <br>",$num2); // Bilangan Desimal Tanpa Tanda (negatif)
printf("%%f = %f <br>",$num1); // Bilangan Buatan (menurut setting lokal)
printf("%%F = %F <br>",$num1); // Bilangan Buatan (tidak mengambil setting lokal)
printf("%%g = %g <br>",$num1); // Pendek dari %e dan %f
printf("%%G = %G <br>",$num1); // Pendek dari %E dan %f
printf("%%o = %o <br>",$num1); // Bilangan Oktal
printf("%%s = %s <br>",$num1); // String
printf("%%x = %x <br>",$num1); // Bilangan Hexadesimal (kecil)
printf("%%X = %X <br>",$num1); // Bilangan Hexadesimal (besar)
printf("%%+d = %+d <br>",$num1); // Penjelasan Simbol (positif)
printf("%%+d = %+d <br>",$num2); // Penjelasan Simbol (negatif)
?>

Contoh Eksekusi