Contoh printf php. Format fungsi output dalam PHP. Menjana rentetan format

(PHP 4, PHP 5, PHP 7)

sprintf - Mengembalikan rentetan yang diformatkan

Senarai parameter

Rentetan format terdiri daripada sifar atau lebih arahan: aksara biasa (kecuali % ), yang disalin terus ke dalam rentetan yang terhasil, dan deskriptor transformasi, setiap satunya digantikan dengan salah satu parameter. Ini terpakai kepada kedua-duanya sprintf(), dan kepada printf().

Setiap penentu penukaran terdiri daripada tanda peratus ( % ), diikuti dengan satu atau lebih elemen tambahan (mengikut susunan mereka disenaraikan di sini):

  1. Pilihan deskriptor watak, menunjukkan cara tanda (- atau +) akan digunakan pada nombor tersebut. Secara lalai, hanya tanda tolak digunakan jika nombornya negatif. Penentu ini menyebabkan nombor positif turut memaparkan tanda tambah dan telah ditambahkan dalam PHP 4.3.0.
  2. Pilihan penentu padding, yang menentukan aksara yang akan digunakan untuk melapik hasil ke panjang yang diperlukan. Ia boleh menjadi ruang atau 0 . Lalai ialah ruang. Aksara ganti boleh ditentukan menggunakan petikan tunggal ( " ). Lihat contoh di bawah.
  3. Pilihan deskriptor penjajaran, yang menentukan penjajaran kiri atau kanan. Secara lalai ia dijajarkan ke kanan, - digunakan untuk penjajaran kiri.
  4. Nombor pilihan penentu lebar, yang menentukan bilangan minimum aksara yang akan mengandungi hasil penukaran ini.
  5. Pilihan deskriptor ketepatan, dinyatakan sebagai noktah (".") diikuti dengan rentetan perpuluhan pilihan yang menentukan bilangan tempat perpuluhan untuk dipaparkan untuk nombor titik terapung. Apabila digunakan dengan rentetan, penentu ini bertindak sebagai titik pemotongan yang menetapkan had aksara maksimum. Anda juga boleh menentukan simbol yang digunakan untuk melengkapkan nombor antara titik dan nombor.
  6. Penentu jenis, yang menentukan cara merawat jenis data hujah. Jenis yang sah:

    • % - simbol peratusan. Hujah tidak digunakan.
    • b- hujah dianggap sebagai integer dan output sebagai nombor binari.
    • c- hujah dianggap sebagai integer dan output sebagai aksara dengan kod ASCII yang sepadan.
    • d- hujah dianggap sebagai integer dan output sebagai nombor perpuluhan yang ditandatangani.
    • e- hujah ditafsirkan sebagai nombor dalam tatatanda saintifik (contohnya, 1.2e+2). Penentu ketepatan menunjukkan bilangan tempat perpuluhan sejak PHP 5.2.1. Dalam versi terdahulu, ia menunjukkan bilangan angka penting (kurang satu tanda).
    • E- serupa %e, tetapi menggunakan huruf besar (contohnya, 1.2E+2).
    • f- hujah dianggap sebagai nombor titik terapung dan juga output bergantung pada tempat.
    • F- hujah dianggap sebagai nombor titik terapung dan juga output, tetapi tanpa bergantung pada tempat. Tersedia bermula dari PHP 4.3.10 dan PHP 5.0.3.
    • g %e Dan %f.
    • G- memilih entri terpendek daripada %E Dan %f.
    • o- hujah dianggap sebagai integer dan output sebagai nombor perlapanan.
    • s- hujah dianggap sebagai rentetan.
    • u- hujah dianggap sebagai integer dan output sebagai nombor perpuluhan yang tidak ditandatangani.
    • x- hujah dianggap sebagai integer dan output sebagai nombor heksadesimal (huruf kecil).
    • X- hujah dianggap sebagai integer dan output sebagai nombor heksadesimal (dalam huruf besar).

Pembolehubah akan ditukar kepada jenis yang sesuai untuk penentu:

Pengendalian Jenis
taip Penentu
tali s
integer d, u, c, o, x, X, b
berganda g, G, e, E, f, F

Perhatian

Cuba untuk menggunakan gabungan rentetan dan penentu lebar dengan pengekodan yang memerlukan lebih daripada satu bait setiap aksara mungkin menghasilkan hasil yang tidak dijangka.

Rentetan format menyokong penomboran dan penyusunan semula parameter. Sebagai contoh:

Contoh #1 Menukar susunan parameter

$num = 5 ;
$lokasi = "pokok" ;

$format = "%d monyet sedang duduk di atas %s";

?>

Kod ini akan mengeluarkan "5 ekor monyet duduk di atas pokok". Sekarang bayangkan bahawa rentetan format terkandung dalam fail yang berasingan, yang kemudiannya akan diterjemahkan ke dalam bahasa lain, dan kami menulis semula seperti ini:

Contoh #2 Menukar susunan parameter

$format = "Ada %d monyet duduk di atas %s";
echo sprintf ($format, $num, $lokasi);
?>

Terdapat masalah: susunan penentu penukaran tidak sepadan dengan susunan hujah. Kami tidak mahu menukar kod dan kami perlu menentukan hujah yang sepadan dengan penentu penukaran yang mana.

Contoh #3 Menukar susunan parameter

$format = "Terdapat %1$d monyet duduk di atas %2$s";
echo sprintf ($format, $num, $lokasi);
?>

Penomboran argumen mempunyai kegunaan lain: ia membolehkan anda mencetak hujah yang sama beberapa kali tanpa menghantar parameter tambahan kepada fungsi.

Contoh #4 Menukar susunan parameter

$format = "Terdapat %1$d monyet duduk di atas %2$s.
Seronok %2$s duduk di atas %1$d monyet."
;
echo sprintf ($format, $num, $lokasi);
?>

Apabila menukar susunan parameter deskriptor kedudukan n$ mesti datang serta-merta selepas tanda peratus ( % ) sebelum semua deskriptor lain, seperti yang ditunjukkan dalam contoh di bawah.

Contoh #5 Menentukan aksara pelengkap

echo sprintf ("%.9d\n" , 123 );
echo sprintf ("%".09d\n" , 123 );
?>

123 000000123

Contoh #6 Menggunakan penentu kedudukan dan bersama dengan deskriptor lain

$format = "Terdapat %1$04d monyet duduk di atas %2$s";
echo sprintf ($format, $num, $lokasi);
?>

Hasil daripada menjalankan contoh ini:

0005 ekor monyet duduk di atas pokok

Komen:

Percubaan telah dibuat untuk menggunakan penentu kedudukan yang lebih besar daripada PHP_INT_MAX, akan menyebabkan fungsi menjana amaran sprintf() .

Perhatian

The c penentu jenis mengabaikan padding dan lebar

Kembalikan nilai

Mengembalikan rentetan yang diformatkan mengikut format .

Contoh

Contoh #7 sprintf(): pelapik dengan sifar

$n = 43951789 ;
$u = - 43951789 ;
$c = 65 ; // ASCII 65 ialah "A"

// ambil perhatian bahawa double %% adalah output sebagai "%" tunggal
printf ("%%b = "%b"\n" , $n ); // perwakilan binari
printf ("%%c = "%c"\n" , $c ); // mencetak aksara ascii, serupa dengan fungsi chr().
printf ("%%d = "%d"\n" , $n ); // integer biasa
printf ("%%e = "%e"\n" , $n ); // notasi saintifik
printf ("%%u = "%u"\n" , $n ); // perwakilan integer tidak bertanda bagi nombor positif
printf ("%%u = "%u"\n" , $u ); // perwakilan integer yang tidak ditandatangani bagi nombor negatif
printf ("%%f = "%f"\n" , $n ); // perwakilan nombor titik terapung
printf ("%%o = "%o"\n" , $n ); // perwakilan oktal
printf ("%%s = "%s"\n" , $n ); // baris
printf ("%%x = "%x"\n" , $n ); // perwakilan heksadesimal (huruf kecil)
printf ("%%X = "%X"\n" , $n ); // perwakilan heksadesimal (huruf besar)

Printf ("%%+d = "%+d"\n" , $n ); // deskriptor tanda dengan integer positif
printf ("%%+d = "%+d"\n" , $u ); // deskriptor tanda dengan integer negatif
?>

Hasil daripada menjalankan contoh ini:

%b = "10100111101010011010101101" %c = "A" %d = "43951789" %e = "4.39518e+7" %u = "43951789" %u = "42510151789" %e = "4.39518e+7" %u = "43951789" %u = "4251015% "0.08" "2475232 55 " %s = "43951789" %x = "29ea6ad" %X = "29EA6AD" %+d = "+43951789" %+d = "-43951789"

Contoh #8 printf(): deskriptor rentetan

$s = "monyet" ;
$t = "banyak monyet" ;

Printf("[%s]\n" , $s ); // output talian biasa
printf ("[%10s]\n" , $s ); // jajaran kanan dengan ruang
printf ("[%-10s]\n" , $s ); // penjajaran kiri dengan ruang
printf ("[%010s]\n" , $s ); // padding sifar juga berfungsi dengan rentetan
printf ("[%"#10s]\n" , $s ); // gunakan aksara "#" pelengkap anda sendiri
printf ("[%10.10s]\n" , $t ); // penjajaran kiri dengan trim 10 aksara
?>

printf("cara memformat", parameter1, parameter2, ...) -- memaparkan hasil pada skrin

$hasil= sprintf("..", .., .., ...) - perkara yang sama, hanya baris yang tidak dikeluarkan, tetapi diletakkan dalam $result

Petikan daripada terjemahan manual ( CONTOH di bawah:-):

sprintf

sprintf -- mengembalikan rentetan yang diformat
Penerangan
sprintf (format rentetan, bercampur ...);

Mengembalikan rentetan yang diproses mengikut rentetan format format .

Rentetan format yang mengandungi sifar atau lebih arahan: aksara biasa (kecuali %) yang disalin terus ke hasil, dan yang disalin terus ke hasil, dan penerangan tentang perubahan, setiap satunya melakukan tindakan tertentu. Ini juga terpakai kepada sprintf() dan kepada printf()

Setiap pernyataan perubahan terdiri daripada elemen berikut, mengikut urutan:

    Tambahan penentu padding, yang memberitahu aksara yang akan digunakan untuk memadankan hasil kepada saiz rentetan yang betul. Ini boleh menjadi ruang atau 0 (karakter sifar). Secara lalai ia diisi dengan ruang. Aksara padding alternatif boleh ditentukan dengan petikan tunggal ("). Lihat contoh di bawah.

    Tambahan deskriptor penjajaran, yang mengatakan hasilnya harus dijajarkan ke kiri atau kanan. Secara lalai, penjajaran dijajarkan ke kanan; - aksara akan menghasilkan penjajaran kiri.

    Tambahan penentu lebar, yang menyatakan berapa banyak aksara (minimum) penggantian ini boleh dibuat dengan.

    Tambahan deskriptor ketepatan, yang memberitahu bilangan tempat perpuluhan untuk dipaparkan untuk nombor titik terapung. Deskriptor ini tidak mempunyai kesan pada jenis selain dua kali ganda. (fungsi lain yang berguna untuk memformat nombor ialah format_nombor() .)

  1. Penentu jenis, yang memberitahu cara jenis data hujah harus dirawat. Jenis yang mungkin:

    % ialah simbol peratus. Tiada hujah diperlukan.
    b - hujah dianggap sebagai integer dan diwakili sebagai nombor binari.
    c - hujah dianggap sebagai integer dan diwakili sebagai aksara dengan nilai ASCII.
    d - hujah dianggap sebagai integer dan diwakili sebagai nombor perpuluhan.
    f - hujah dianggap sebagai dua kali ganda dan diwakili sebagai nombor titik terapung.
    o - hujah dianggap sebagai integer dan diwakili sebagai nombor perlapanan.
    s - hujah ditafsir dan diwakili sebagai rentetan.
    x - hujah dianggap sebagai integer dan diwakili sebagai nombor heksadesimal (dengan huruf dalam huruf kecil).
    X - hujah dianggap sebagai integer dan diwakili sebagai nombor heksadesimal (dengan huruf besar).
Contoh

Contoh 2. sprintf: pemformatan mata wang

$wang1 = 68.75; $wang2 = 54.35; $wang = $wang1 + $wang2; // echo $money akan mengeluarkan "123.1"; $formatted = sprintf("%01.2f", $money); // echo $formatted akan mengeluarkan "123.10"

Contoh

Semua yang tercatat >>> antara kurungan tersebut <<< ialah hasil daripada fungsi (iaitu contoh output ke skrin) $s="MyString"; -> baris %s $f=12345.6789; -> pecahan %f $d=12345; -> integer %d sistem ke-10: 0123456789 16nombor %x sistem ke-16: 0123456789abcdef 16nombor %X sistem ke-16: 0123456789ABCDEF 8nombor %o sistem ke-8: 5012 sistem 4: 5012 sahaja nombor : printf("%d",$ d); >>> 12345<<< просто выводим 16число: printf("%X",123456789); >>>75BCD15<<< просто выводим 2число: printf("%b",$d); >>> 11000000111001 <<< просто выводим дробное число: printf("%f",$f); >>> 12345.6789 <<< дополнение чисел нулями: printf("%010d",$d); >>> 0000012345 <<< округление до 3х знаков после запятой: printf("%.3f",$f); >>> 12345.679 <<< просто выводим число + посторонний текст: printf("посторонний%dтекст",$d); >>> orang luar12345teks<<< вывод нескольких переменных - последовательное перечисление printf("%d-%f-%s",$d,$f,$s); >>> 12345-12345.678900-MyString<<< выравнивание (ширина 20 символов) по правому краю, пустоту заполняем "_": printf("%"_20s",MyString); >>> ____________MyString<<< выравнивание по левому краю, пустоту заполняем "x": printf("%-"x20s",MyString); >>> MyStringxxxxxxxxxxxx<<<

Lihat contoh lain di sini:

Mencetak rentetan, nilai berubah atau ungkapan.
Sintaks:

Cetak (rentetan arg)

Fungsi print() mencetak argumen arg, yang boleh menjadi pembolehubah atau ungkapan.

vsprintf()

Mengembalikan rentetan berformat (PHP 4 >= 4.1.0, PHP 5)

Penerangan:

String vsprintf (format rentetan, args array)

Fungsi ini serupa dengan sprintf(), tetapi ia memerlukan tatasusunan dan bukannya bilangan argumen yang berubah-ubah.

Mencetak satu atau lebih nilai.
Sintaks:

Echo(rentetan arg1, rentetan ...)

Fungsi echo() memaparkan nilai parameter yang disenaraikan.
echo() sebenarnya ialah binaan bahasa, jadi ia tidak memerlukan tanda kurungan walaupun berbilang argumen digunakan.
echo "Pecah baris yang terdapat dalam kod disimpan dan digunakan dalam output."
"untuk mengelakkan penggunaan ini."
"pengendali penggabungan";

Keluarkan rentetan yang diformat.
Sintaks:

Int printf(format rentetan [, hujah campuran, ...]);

Melakukan perkara yang sama seperti sprintf(), hanya rentetan yang terhasil tidak dikembalikan, tetapi dihantar ke penyemak imbas pengguna.

Melakukan pemformatan rentetan dengan penggantian pembolehubah.
Sintaks:

Sprintf($format [,args, ...])

Fungsi ini mengembalikan rentetan yang dibina daripada rentetan format yang mengandungi beberapa aksara khas yang kemudiannya akan digantikan dengan nilai pembolehubah yang sepadan dalam senarai argumen.
Rentetan format $format boleh termasuk perintah pemformatan yang didahului oleh aksara %.
Semua aksara lain disalin ke rentetan output sebagaimana adanya. Setiap penentu format (iaitu, aksara % dan arahan berikut) sepadan dengan satu dan hanya satu parameter yang ditentukan selepas parameter $format. Jika anda perlu meletakkan % dalam teks sebagai simbol biasa, anda perlu menggandakannya:

Echo sprintf("Peratusan ialah %d%%",$peratus);

Setiap penentu format mengandungi maksimum lima elemen (dalam susunan ia muncul selepas aksara %):

Penentu saiz medan pilihan yang menentukan bilangan aksara yang akan diperuntukkan untuk nilai output.
Sebagai watak pemegang tempat (jika nilai lebih kecil daripada saiz medan untuk memaparkannya)
ruang atau 0 boleh digunakan, lalai ialah ruang. Anda boleh menentukan mana-mana aksara pengisi lain jika anda menentukannya dalam rentetan format, didahului dengan tanda apostrof.
Penentu penjajaran pilihan yang menentukan sama ada hasilnya akan dijajarkan ke kanan atau kiri medan. Lalai ialah penjajaran kanan, tetapi anda boleh menentukan penjajaran kiri dengan menyatakan simbol - (tolak).

Nombor pilihan yang menentukan saiz medan untuk memaparkan nilai. Jika hasilnya tidak berada dalam medan, maka ia akan "melanjutkan" di luar tepi medan ini, tetapi tidak akan dipotong.
Nombor pilihan, didahului oleh noktah ".", yang menentukan bilangan tempat perpuluhan yang terdapat dalam rentetan yang terhasil.
Penentu ini hanya diambil kira jika nombor titik terapung sedang dikeluarkan, jika tidak, ia diabaikan.
Akhir sekali, penentu yang diperlukan (nota - satu-satunya yang diperlukan!) bagi jenis nilai yang akan diletakkan dalam rentetan output:

b - hujah seterusnya daripada senarai adalah output sebagai integer binari
c - simbol dengan kod yang dinyatakan dalam hujah dipaparkan
d - integer
f - nombor titik terapung
o - integer oktal
s - rentetan aksara
x - integer heksadesimal dengan huruf kecil a-z
X ialah integer heksadesimal dengan huruf besar A-Z

Berikut ialah cara untuk menentukan ketepatan nombor titik terapung:

$wang1 = 68.75;
$wang2 = 54.35;
$wang = $wang1 + $wang2;
// echo $money akan mengeluarkan "123.1"...
$formatted = sprintf("%01.2f", $money);
// echo $formatted akan mengeluarkan "123.10"!

Berikut ialah contoh untuk mengeluarkan integer yang didahului oleh bilangan sifar yang diperlukan:

$isodate=sprintf("%04d-%02d-%02d",$tahun,$bulan,$hari);

Mentafsir rentetan mengikut format dan memasukkan nilai ke dalam pembolehubah.

Sintaks:

Sscanf bercampur(string str, format rentetan [, string var1 ...])

Fungsi sscanf() adalah bertentangan dengan fungsi printf().

Ia mentafsir str rentetan mengikut format, serupa dengan spesifikasi printf().

Apabila hanya dua argumen ditentukan, nilai yang terhasil dikembalikan dalam tatasusunan.

// mendapatkan nombor siri$siri = sscanf("SN/235-0001", "SN/%3d-%4d");
echo $siri*10000+$siri; // output: 2350001
// dan tarikh pengeluaran$tarikh = "01 Januari 2000";
list($bulan, $hari, $tahun) = sscanf($tarikh, "%s %d %d");
echo "Tarikh: $year-".substr($month,0,3)."-$dayn";
// output: 2000-Jan-01

Apabila menentukan parameter pilihan tambahan (ia harus diluluskan dengan rujukan)

fungsi mengembalikan nombor mereka. Pembolehubah yang tidak menerima nilai tidak diambil kira dalam nilai pulangan.

// menjana rekod XML daripada rentetan $auth = "765tLewis Carroll";
$n = sscan($auth,"%dt%s %s", &$id, &$first, &$last);
bergema"
$pertama
$terakhir
n";

fprintf()

Penerangan:

Int fprintf (pemegang sumber, format rentetan [, hujah campuran])

Menulis rentetan yang dibuat menggunakan rentetan format ke strim yang pemegangnya dihantar untuk dikendalikan. Argumen format dibincangkan secara terperinci dalam huraian fungsi sprintf().

fprintf(): pelapik dengan sifar


kembali;

fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// menulis tarikh yang diformatkan ke tarikh fail.txt
?>

fprintf(): memformat nilai kewangan

jika (!($fp = fopen("currency.txt", "w")))
kembali;

$wang1 = 68.75;
$wang2 = 54.35;
$wang = $wang1 + $wang2;
// echo $money akan mengeluarkan "123.1";
$len = fprintf($fp, "%01.2f", $money);
// rentetan "123.10" ditulis pada fail currency.txt

echo "$len bait ditulis ke fail currency.txt";
?>

vfprintf()

Menulis rentetan yang diformatkan ke aliran (PHP 5)

Penerangan:

Int vfprintf (pemegang sumber, format rentetan, args tatasusunan)

Menulis rentetan, diformat mengikut format, kepada sumber strim yang ditentukan oleh pemegang. Pemformatan dijalankan sama seperti sprintf().

Berfungsi sama seperti fprintf(), tetapi mengambil tatasusunan argumen dan bukannya bilangan argumen yang berubah-ubah.

Mengembalikan panjang rentetan output.

Lihat juga: printf(), sprintf(), sscanf(), fscanf(), vsprintf(), dan number_format().
Contoh

vfprintf(): integer berlapik sifar

jika (!($fp = fopen("date.txt", "w")))
kembali;

vfprintf($fp, "%04d-%02d-%02d", tatasusunan($tahun, $bulan, $hari));
// akan menulis tarikh ISO yang diformatkan kepada date.txt
?>

vprintf()

Mengeluarkan rentetan berformat (PHP 4 >= 4.1.0, PHP 5)

Penerangan:

Int vprintf(format rentetan, args array)

Mengeluarkan nilai tatasusunan args, diformatkan mengikut argumen format yang diterangkan dalam dokumentasi fungsi sprintf().

Fungsi ini serupa dengan printf(), tetapi ia memerlukan tatasusunan dan bukannya bilangan argumen yang berubah-ubah.

Mengembalikan panjang rentetan output

format_nombor()

Memformat nombor dengan pemisahan kumpulan (PHP 3, PHP 4, PHP 5)

Penerangan:

Format_nombor rentetan (nombor terapung [, int perpuluhan])

format_nombor rentetan (nombor apungan, perpuluhan int, rentetan dec_point, rentetan ribuan_sep)

number_format() mengembalikan nombor yang diformat. Fungsi ini mengambil satu, dua, atau empat argumen (bukan tiga):

Jika hanya satu hujah diluluskan, nombor akan diformatkan tanpa bahagian pecahan, tetapi dengan koma (",") antara kumpulan digit 3.

Jika dua hujah diluluskan, nombor akan diformatkan dengan perpuluhan selepas noktah (".") dan koma (",") antara kumpulan digit 3.

Jika keempat-empat argumen diluluskan, nombor akan diformatkan dengan perpuluhan selepas noktah dan dengan pemisah antara kumpulan digit 3, menggunakan dec_point sebagai titik perpuluhan dan thousands_sep sebagai pemisah kumpulan.

Hanya aksara pertama baris thousands_sep digunakan. Contohnya, jika anda menghantar foo sebagai thousands_sep untuk memformat nombor 1000, number_format() mengembalikan 1f000.

Contoh penggunaan number_format()

Di Perancis, adalah perkara biasa untuk menggunakan 2 tempat perpuluhan (","), dan ruang (" ") sebagai pemisah kumpulan. Pemformatan ini diperoleh menggunakan kod berikut:

$nombor = 1234.56;

// Format bahasa Inggeris (lalai)
$english_format_number = nombor_format($nombor);
// 1,234

// Format Perancis
$nombre_format_francais = number_format($nombor, 2, ",", " ");
// 1 234,56

$nombor = 1234.5678;

// Format bahasa Inggeris tanpa pemisah kumpulan
$english_format_number = number_format($nombor, 2, ".", "");
// 1234.57

tali sprintf(format rentetan [, hujah campuran])

Mengembalikan rentetan yang dibuat menggunakan format rentetan format.

Rentetan format terdiri daripada arahan: aksara biasa (kecuali %), yang disalin ke dalam rentetan hasil dan deskriptor transformasi , setiap satunya digantikan dengan salah satu parameter. Ini juga terpakai kepada fprintf() , sprintf() Dan printf() .

Setiap penentu penukaran terdiri daripada tanda peratus (%) diikuti dengan satu atau lebih elemen tambahan (mengikut susunan yang disenaraikan di sini):

    Pilihan penentu padding , yang menentukan aksara yang akan digunakan untuk melapik hasil ke panjang yang diperlukan. Ini boleh menjadi ruang atau 0. Lalai ialah ruang. Aksara alternatif boleh ditentukan dengan " . Lihat contoh di bawah.

    Pilihan deskriptor penjajaran , yang menentukan penjajaran ke kiri atau kanan. Secara lalai ia dijajarkan ke kanan, - digunakan untuk penjajaran ke kiri.

    Nombor pilihan penentu lebar , yang menentukan bilangan minimum aksara yang akan mengandungi hasil penukaran ini.

    Pilihan deskriptor ketepatan , yang menentukan bilangan tempat perpuluhan untuk dipaparkan untuk nombor titik terapung. Hanya bermakna untuk jenis data berangka terapung. (Untuk memformat nombor, ia juga mudah untuk menggunakan fungsi format_nombor() .)

  1. Penentu jenis , yang menentukan cara merawat jenis data hujah. Jenis yang sah:

    % ialah simbol peratus. Hujah tidak digunakan.
    b - hujah dianggap sebagai integer dan output sebagai nombor binari.
    c - hujah dianggap sebagai integer dan output sebagai aksara dengan kod ASCII yang sepadan.
    d - hujah dianggap sebagai integer dan dikeluarkan sebagai nombor perpuluhan yang ditandatangani.
    e - hujah ditafsirkan sebagai terapung dan merupakan output dalam tatatanda saintifik (contohnya 1.2e+2).
    u - hujah dianggap sebagai integer dan dikeluarkan sebagai nombor perpuluhan tidak bertanda.
    f - hujah ditafsirkan sebagai terapung dan dikeluarkan sebagai nombor titik terapung perpuluhan.
    o - hujah dianggap sebagai integer dan output sebagai nombor perlapanan.
    s - hujah dianggap sebagai rentetan.
    x - hujah dianggap sebagai integer dan dikeluarkan sebagai nombor heksadesimal (dalam huruf kecil).
    X - hujah dianggap sebagai integer dan dikeluarkan sebagai nombor heksadesimal (dalam huruf besar).

Sejak PHP 4.0.6, rentetan format menyokong penomboran dan penyusunan semula parameter. Sebagai contoh:


Kod ini akan mengeluarkan "Ada 5 ekor monyet di dalam pokok". Sekarang bayangkan bahawa rentetan format terkandung dalam fail yang berasingan, yang kemudiannya akan diterjemahkan ke dalam bahasa lain, dan kami menulis semula seperti ini:

Contoh 2: Menukar susunan parameter

$format = "%s mengandungi %d monyet" ;

?>
Terdapat masalah: susunan penentu penukaran tidak sepadan dengan susunan hujah. Kami tidak mahu menukar kod dan kami perlu menentukan hujah yang sepadan dengan penentu penukaran yang mana.

Contoh 3: Menukar susunan parameter

$format = "%2\$s mengandungi %1\$d monyet";
printf ($format, $num, $lokasi);
?>
Penomboran argumen mempunyai kegunaan lain: ia membolehkan anda mencetak hujah yang sama beberapa kali tanpa menghantar parameter tambahan kepada fungsi.