Tulis string yang diformat ke dalam variabel:
<?php$number = 9;$str = "Beijing";$txt = vsprintf("Ada %u juta sepeda di %s.",array($number,$str));echo $txt;?>Fungsi vsprintf() menulis string yang diformat ke dalam variabel.
Berbeda dengan sprintf(), argumen dalam vsprintf() berada dalam array. Elemen array akan disisipkan ke dalam string utama pada tanda persen (%). Fungsi ini dijalankan selangkah demi selangkah. Pada tanda % pertama disisipkan elemen array pertama, pada tanda % kedua disisipkan elemen array kedua, dan seterusnya.
Catatan: Jika ada lebih banyak simbol % daripada parameter arg, Anda harus menggunakan placeholder. Placeholder disisipkan setelah simbol % dan terdiri dari angka dan "$". Lihat Contoh 2.
Tip: Fungsi terkait: fprintf(), vfprintf(), printf(), sprintf(), dan vprintf()
vsprintf( format,argarray )
parameter | menggambarkan |
---|---|
format | Diperlukan. Menentukan string dan cara memformat variabel di dalamnya. Nilai format yang mungkin: %% - mengembalikan tanda persen % %b - bilangan biner %c - karakter yang sesuai dengan nilai ASCII %d - Angka desimal dengan tanda (negatif, 0, positif) %e - Gunakan notasi ilmiah huruf kecil (misalnya 1.2e+2) %E - Gunakan notasi ilmiah huruf besar (misalnya 1.2E+2) %u - Angka desimal tanpa tanda (lebih besar atau sama dengan 0) %f - angka floating point (pengaturan lokal) %F - angka floating point (pengaturan non-asli) %g - versi pendek dari %e dan %f %G - lebih pendek %E dan %f %o - bilangan oktal %s - rangkaian %x - Angka heksadesimal (huruf kecil) %X - angka heksadesimal (huruf besar) Nilai format tambahan. Harus ditempatkan di antara % dan huruf (misalnya %.2f): + (Tambahkan + atau - di depan angka untuk menentukan tanda angka. Secara default, hanya angka negatif yang ditandai, dan angka positif tidak ditandai) ' (Menentukan apa yang akan digunakan sebagai padding, defaultnya adalah spasi. Ini harus digunakan dengan penentu lebar. Misalnya: %'x20s (gunakan "x" sebagai padding)) - (nilai variabel penyesuaian kiri) [0-9] (menentukan lebar minimum nilai variabel) .[0-9] (menentukan jumlah tempat desimal atau panjang string maksimum) Catatan: Jika beberapa nilai format di atas digunakan, nilai tersebut harus digunakan sesuai urutan di atas dan tidak boleh diganggu. |
Argarray | Diperlukan. Array dengan parameter yang akan dimasukkan ke dalam string format pada simbol %. |
Nilai pengembalian: | Mengembalikan nilai array sebagai string yang diformat. |
---|---|
Versi PHP: | 4.1.0+ |
Gunakan nilai format %f:
<?php$angka1 = 123;$angka2 = 456;$txt = vsprintf("%f%f",array($angka1,$angka2));echo $txt;?>Gunakan placeholder:
<?php$number = 123;$txt = vsprintf("Dengan 2 desimal: %1$.2f<br>Tanpa desimal: %1$u",array($number));echo $txt;?>Gunakan sprintf() untuk mendemonstrasikan semua kemungkinan nilai format:
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // Karakter ASCII 50 adalah 2// Catatan: Nilai format "%%" mengembalikan persen signecho sprintf("%%b = % b",$num1).."<br>"; // Bilangan binerecho sprintf("%%c = %c",$char).."<br>"; // Karakter ASCIIcho sprintf("%%d = %d",$num1).."<br>"; // Angka desimal bertandaecho sprintf("%% d = %d",$angka2).."<br>"; // Angka desimal bertandaecho sprintf("%%e = %e",$angka1)."<br>"; // Notasi ilmiah (huruf kecil)echo sprintf("%%E = %E",$num1).."<br>"; // Notasi ilmiah (huruf besar)echo sprintf("%%u = %u",$num1)."< br>"; // Bilangan desimal tak bertanda (positif)echo sprintf("%%u = %u",$num2).."<br>"; // Bilangan desimal tak bertanda (negatif)echo sprintf("%%f = %f",$num1).."<br>"; // Angka titik-mengambang (pengaturan lokal diketahui)echo sprintf("%%F = %F",$num1)."< br>"; // Angka floating-point (tidak mengetahui sett lokal)echo sprintf("%%g = %g",$num1).."<br>"; // Lebih pendek dari %e dan %fecho sprintf("%%G = %G",$num1).."<br>"; // Lebih pendek dari %E dan %fecho sprintf("%%o = %o",$num1).."<br>" ; // Bilangan oktalecho sprintf("%%s = %s",$angka1).."<br>"; // Bilangan heksadesimal (huruf kecil)echo sprintf("%%X = %X",$angka1).."<br>"; // Bilangan heksadesimal (huruf besar)echo sprintf("%%+d = %+d", $num1).."<br>"; // Penentu tanda (positif)echo sprintf("%%+d = %+d",$num2)."<br>"; (negatif)?>Demonstrasi penentu string:
<?php$str1 = "Halo";$str2 = "Halo dunia!";echo vsprintf("[%s]",array($str1)).."<br>";echo vsprintf("[%8s] ",array($str1))."<br>";echo vsprintf("[%-8s]",array($str1))."<br>";echo vsprintf("[%08s]",array($str1))."<br>"; echo vsprintf("[%'*8s]",array($str1))."<br>";echo vsprintf( "[%8.8s]",array($str2)).."<br>";