Home » PHP » Fungsi String sprintf() Pada PHP

Fungsi String sprintf() Pada PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Definisi dan Penggunaan

Fungsi sprintf() digunakan untuk dapat menulis string yang diformat ke variabel.

Parameter arg1, arg2, ++ akan disisipkan pada tanda persen (%) di string utama. Fungsi ini bekerja “selangkah demi selangkah”. 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 (), vprintf (), vsprintf (), fprintf () dan vfprintf ()

Syntax

sprintf(format,arg1,arg2,arg++)

Nilai Parameter

ParameterDeskripsi
formatRequired. 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.
arg1Required. Argumen yang akan disisipkan di% -sign pertama dalam format string
arg2Optional. Argumen yang akan disisipkan di% -sign kedua dalam format string
arg++Optional. Argumen yang akan disisipkan di ketiga, keempat, dll.% -Sign dalam format string

Detail Teknis

Return Value:Mengembalikan string yang telah diformat
PHP Version:4+

Contoh 1
Ganti tanda persen (%) dengan variabel yang diteruskan sebagai argumen:

<?php
$number = 9;
$str = "Taiwan";
$txt = sprintf("Ada %u juta sepeda di %s.",$number,$str);
echo $txt;
?>
  /*Output :
Ada 9 juta sepeda di Taiwan.

Contoh 2
Menggunakan nilai format% f:

<?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?>
/* Output :
123.000000

Contoh 3
Penggunaan placeholder:

<?php
$number = 123;
$txt = sprintf("Dengan 2 desimal: %1\$.2f
<br>Tanpa desimal: %1\$u",$number);
echo $txt;
?>
  /* Output : 
Dengan 2 desimal : 123.00
Tanpa desimal: 123

Contoh 4
Demonstrasi semua nilai format yang mungkin:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Karakter ASCII 50 adalah 2

// Note: Nilai format "%%" mengembalikan tanda persen
sprintf("%%b = %b <br>",$num1); // Binary number
sprintf("%%c = %c <br>",$char); // The ASCII Character
sprintf("%%d = %d <br>",$num1); // Angka desimal bertanda tangan
sprintf("%%d = %d <br>",$num2); // Angka desimal bertanda tangan
sprintf("%%e = %e <br>",$num1); // Notasi ilmiah (lowercase)
sprintf("%%E = %E <br>",$num1); // Notasi ilmiah (uppercase)
sprintf("%%u = %u <br>",$num1); // Angka desimal tak bertanda tanganr (positive)
sprintf("%%u = %u <br>",$num2); // Angka desimal tak bertanda tangan (negative)
sprintf("%%f = %f <br>",$num1); // Angka floating-point (local settings aware)
sprintf("%%F = %F <br>",$num1); // Angka floating-point (not local settings aware)
sprintf("%%g = %g <br>",$num1); // Lebih pendek dari %e dan %f
sprintf("%%G = %G <br>",$num1); // Lebih pendek dari %E dan %f
sprintf("%%o = %o <br>",$num1); // Octal number
sprintf("%%s = %s <br>",$num1); // String
sprintf("%%x = %x <br>",$num1); // Bilangan heksadesimal (lowercase)
sprintf("%%X = %X <br>",$num1); // Bilangan heksadesimal (uppercase)
sprintf("%%+d = %+d <br>",$num1); // Sign specifier (positive)
sprintf("%%+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

Contoh 5
Demonstrasi penentu string:

<?php
$str1 = "Hello";
$str2 = "Hello world!";

sprintf("[%s]<br>",$str1); // String
sprintf("[%8s]<br>",$str1); // Membenarkan string dengan spasi
sprintf("[%-8s]<br>",$str1); // Membenarkan nilai string dengan spasi
sprintf("[%08s]<br>",$str1); // Zero-padding
sprintf("[%'*8s]<br>",$str1); // Menambahkan "*"
sprintf("[%8.8s]<br>",$str2); // Membenarkan string dengan spasi (memotong karakter setelah nilai yang ditentukan)
?>
  /*Output :
[Hello]
[ Hello]
[Hello ]
[000Hello]
[***Hello]
[Hello wo]

You may also like