sprintf() function PHP

sprintf() function berguna untuk menghasilkan string berdasarkan format yang digunakan dan menyimpannya di dalam variable.

Syntax

string sprintf(string $format, mixed $args, mixed $...)

Parameter

Parameter Penjelasan
format Parameter ini wajib ada. String yang berisi format. Lihat daftarnya pada bagian catatan.
args Parameter ini wajib ada. Nilai yang akan menggantikan character %- pertama yang ada pada format.
Parameter ini pilihan. Nilai yang akan menggantikan character %- kedua dan seterusnya yang ada pada format.

Catatan

Character %- yang berada di dalam string (parameter format) akan diubah menjadi parameter args. Jika ada lebih dari satu character %- di dalam string (parameter format) maka character %- pertama akan diubah menjadi parameter args pertama, character %- kedua akan diubah menjadi parameter args kedua dan seterusnya.

Berikut ini adalah daftar character parameter format yang akan diubah oleh parameter args sesuai dengan urutan (semuanya harus diawali dengan %):

  1. "+". Pilihan untuk memberi symbol + atau – di depan angka. Secara default hanya nilai negative yang diberi tanda -. Jika pilihan ini digunakan maka baik nilai positif maupun negatif akan diberi tanda + atau – di depannya.
  2. "'". Menentukan character yang digunakan untuk mengisi bagian yang kosong pada character pengganti (parameter args). Memiliki nilai default spasi.
  3. "-". Menentukan posisi pengganti yang ingin dihasilkan (menjadi rapat kiri). Secara default pengganti akan ditampilkan rapat kanan.
  4. "[0-9]". Menentukan jumlah minimum character pengganti (parameter args) yang ingin dihasilkan.
  5. ".[0-9]". Menentukan jumlah maksimum character pengganti (parameter args) yang akan digunakan.
  6. Menentukan perlakuan terhadap argument parameter args. Berikut ini adalah daftarnya:
    • % – menghasilkan symbol persen
    • b – argument diperlakukan sebagai bilangan integer dan dihasilkan dalam bentuk binary
    • c – argument diperlakukan sebagai bilangan integer dan dihasilkan dalam bentuk character set ASCII
    • d – argument diperlakukan sebagai bilangan integer dan dihasilkan dalam bentuk signed decimal (angka normal, bisa negatif, nol atau positif)
    • e – argument diperlakukan sebagai bilangan exponensial menggunakan huruf kecil (contoh 1.2e+2)
    • E – argument diperlakukan sebagai bilangan exponensial menggunakan huruf besar (contoh 1.2E+2)
    • f – argument diperlakukan sebagai floating-point dan dihasilkan dalam bentuk floating-point (berdasarkan pengaturan lokal)
    • F – argument diperlakukan sebagai floating-point dan dihasilkan dalam bentuk floating-point (tidak berdasarkan pengaturan lokal)
    • u – argument diperlakukan sebagai bilangan integer dan dihasilkan dalam bentuk unsigned decimal (angka normal, bisa nol atau positif)
    • g – sama seperti %e dan %f namun dipilih tampilan yang terpendek
    • G – sama seperti %E dan %f namun dipilih tampilan yang terpendek
    • o – argument diperlakukan sebagai bilangan integer dan dihasilkan dalam bentuk octal
    • s – argument diperlakukan dan dihasilkan dalam bentuk string
    • x – argument diperlakukan sebagai bilangan integer dan dihasilkan dalam bentuk hexadecimal (huruf kecil)
    • X – argument diperlakukan sebagai bilangan integer dan dihasilkan dalam bentuk hexadecimal (huruf besar)

Contoh

Berikut ini adalah contoh penggunaan sprintf() function:

Code PHP 1:

<?php
$str = "123";

// String
$a = sprintf("%s", $str);

// Menggunakan pilihan 4 (lebar string pengganti)
$b = sprintf("%3s", $str);
$c = sprintf("%5s", $str);
$d = sprintf("%7s", $str);

// Menggunakan pilihan 3 (rapat kiri) dan 4
$e = sprintf("%-7s", $str);

// Menggunakan pilihan 2 (mengisi bagian yang kosong dengan character yang diinginkan), 3 dan 4
$f = sprintf("%'x-7s", $str);

// Menggunakan pilihan 2 dan 4
$g = sprintf("%'x7s", $str);

// Menggunakan pilihan 5 (membatasi lebar string penganti)
$h = sprintf("%.2s", $str);
$i = sprintf("%.1s", $str);

// Menggunakan pilihan 4 dan 5
$j = sprintf("%'x7.2s", $str);

var_dump($a, $b, $c, $d, $e, $f, $g, $h, $i, $j);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(3) "123"
string(3) "123"
string(5) "  123"
string(7) "    123"
string(7) "123    "
string(7) "123xxxx"
string(7) "xxxx123"
string(2) "12"
string(1) "1"
string(7) "xxxxx12"

Berikut ini adalah contoh penggunaan parameter format yang menentukan perlakuan terhadap argument parameter args:

Code PHP 2:

<?php
$n =  43951789;
$u = -43951789;
$c = 65; // ASCII 65 = A

// Catatan: dua buah character %% akan menghasilkan %
printf("%%b = '%b' \n", $n); // binary
printf("%%c = '%c' \n", $c); // menghasilkan ascii character, sama seperti chr() function
printf("%%d = '%d' \n", $n); // integer
printf("%%e = '%e' \n", $n); // eksponensial
printf("%%u = '%u' \n", $n); // unsigned decimal (angka normal, bisa nol atau positif)
printf("%%u = '%u' \n", $u); // tidak bisa menampilkan angka negative karena unsigned decimal 
printf("%%f = '%f' \n", $n); // floating point
printf("%%o = '%o' \n", $n); // octal 
printf("%%s = '%s' \n", $n); // string
printf("%%x = '%x' \n", $n); // hexadecimal (huruf kecil)
printf("%%X = '%X' \n", $n); // hexadecimal (huruf besar)
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

%b = '10100111101010011010101101' 
%c = 'A' 
%d = '43951789' 
%e = '4.395179e+7' 
%u = '43951789' 
%u = '4251015507' 
%f = '43951789.000000' 
%o = '247523255' 
%s = '43951789' 
%x = '29ea6ad' 
%X = '29EA6AD'

Lihat function lainnya:

  • fprintf() – Menghasilkan string berdasarkan format yang digunakan dan menyimpannya di dalam file.
  • printf() – Menampilkan string berdasarkan format yang digunakan.
  • vsprintf() – Menghasilkan string berdasarkan format yang digunakan dan menyimpannya di dalam variable.
  • vfprintf() – Menghasilkan string berdasarkan format yang digunakan dan menyimpannya di dalam file.
  • vprintf() – Menampilkan string berdasarkan format yang digunakan.
  • sscanf() – Mem-parse string berdasarkan format yang ditentukan.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>