(PHP 4, PHP 5, PHP 7, PHP 8)
sprintf — Biçemli bir dizge döndürür
biçem
dizgesiyle biçemlenerek üretilmiş bir dizge
döndürür.
biçem
Biçem dizgesi sıfır veya daha fazla sayıda yönergeden oluşur:
Sıradan karakterler (%
hariç) doğrudan çıktıya
kopyalanır. Dönüşüm belirtimleri ise her biri
kendi değiştirgesini alarak bir sonuç üretir.
printf() işlevi bu bakımdan
sprintf() işlevi gibidir.
Her dönüşüm belirtimi, önüne yüzde imi (%
)
getirilmiş bir veya daha fazla sayıda, sırayla şu elemanlardan oluşur:
0
karakteri de olabilir. Öntanımlı olarak
boşlukla dolgu yapılır. Bir dolgu karakteri daha belirtmek gerekirse
tek tırnak ile öncelenerek belirtilebilir. Örnekler için aşağıya
bakınız.
-
karakteri
sola hizalama yapılmasını sağlar.
Değiştirge verisinin hangi türde ele alınacağını belirtmek için bir tür belirteci. Olası türler:
%
- Yüzde iminin kendisi. Bir değiştirge
gerektirmez.
b
- Değiştirgenin bir tamsayı olarak ele
alınmasını ve bir ikil sayı olarak gösterilmesini sağlar.
c
- Değiştirgenin bir tamsayı olarak ele
alınmasını ve bu ASCII değere sahip karakterin gösterilmesini
sağlar.
d
- Değiştirgenin bir tamsayı olarak ele
alınmasını ve bir (işaretli) onluk sayı olarak gösterilmesini
sağlar.
e
- Değiştirge bilimsel gösterimle ele alınır
(1.2e+2 gibi). Hassasiyet belirteci PHP 5.2.1'den beri ondalık
noktadan sonraki hane sayısını belirlemekte kullanılmaktadır.
Önceki sürümlerde (bir eksiğiyle) kıymetli hanelerin sayısı olarak
ele alınırdı.
u
- Değiştirgenin bir tamsayı olarak ele
alınmasını ve bir işaretsiz onluk sayı olarak gösterilmesini
sağlar.
f
- Değiştirgenin bir kayan noktalı sayı olarak
ele alınmasını ve bir gerçek sayı olarak (yerele bağlı)
gösterilmesini sağlar.
F
- Değiştirgenin bir kayan noktalı sayı olarak
ele alınmasını ve bir gerçek sayı olarak (yerele bağlı olmaksızın)
gösterilmesini sağlar. PHP 4.3.10 ve PHP 5.0.3'ten beri
kullanılabilmektedir.
o
- Değiştirgenin bir tamsayı olarak ele
alınmasını ve bir sekizlik sayı olarak gösterilmesini sağlar.
s
- Değiştirge dizge olarak ele alınıp dizge
olarak gösterilir.
x
- Değiştirgenin bir tamsayı olarak ele
alınmasını ve (küçük harfli) bir onaltılık sayı olarak
gösterilmesini sağlar.
X
- Değiştirgenin bir tamsayı olarak ele
alınmasını ve (büyük harfli) bir onaltılık sayı olarak
gösterilmesini sağlar.
Biçem dizgesi değiştirge numaralama ve yer değiştirme işlemlerini de destekler. Örnek:
Örnek 1 - Değiştirge takaslama
<?php
$format = 'There are %d monkeys in the %s';
printf($format, $num, $location);
?>
Örnek 2 - Değiştirge takaslama
<?php
$format = 'The %s contains %d monkeys';
printf($format, $num, $location);
?>
Örnek 3 - Değiştirge takaslama
<?php
$format = 'The %2$s contains %1$d monkeys';
printf($format, $num, $location);
?>
Örnek 4 - Değiştirge takaslama
<?php
$format = 'The %2$s contains %1$d monkeys.
That\'s a nice %2$s full of %1$d monkeys.';
printf($format, $num, $location);
?>
args
...
biçem
dizgesine göre biçemlendirilerek üretilen bir
dizge döner.
Sürüm: | Açıklama |
---|---|
4.0.6 | Değiştirge numaralama/takaslama desteği eklendi. |
Örnek 5 - Çeşitli printf()örnekleri
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'
// Dikkat: %%, sadece bir tane '%' basar
printf("%%b = '%b'\n", $n); // ikil gösterim
printf("%%c = '%c'\n", $c); // ascii karakteri basar; chr() ile aynı
printf("%%d = '%d'\n", $n); // standart tamsayı gösterimi
printf("%%e = '%e'\n", $n); // bilimsel gösterim
printf("%%u = '%u'\n", $n); // pozitif tamsayının işaretsiz tamsayı gösterimi
printf("%%u = '%u'\n", $u); // negatif tamsayının işaretsiz tamsayı gösterimi
printf("%%f = '%f'\n", $n); // gerçek sayı gösterimi
printf("%%o = '%o'\n", $n); // sekizlik gösterim
printf("%%s = '%s'\n", $n); // dizge gösterimi
printf("%%x = '%x'\n", $n); // küçük harfli onaltılık sayı gösterimi
printf("%%X = '%X'\n", $n); // büyük harfli onaltılık sayı gösterimi
printf("%%+d = '%+d'\n", $n); // pozitif tamsayı üzerinde işaret belirteci
printf("%%+d = '%+d'\n", $u); // negatif tamsayı üzerinde işaret belirteci
?>
Yukarıdaki örneğin çıktısı:
%b = '10100111101010011010101101' %c = 'A' %d = '43951789' %e = '4.39518e+7' %u = '43951789' %u = '4251015507' %f = '43951789.000000' %o = '247523255' %s = '43951789' %x = '29ea6ad' %X = '29EA6AD' %+d = '+43951789' %+d = '-43951789'
Örnek 6 - printf() dizge belirtimleri
<?php
$s = 'monkey';
$t = 'many monkeys';
printf("[%s]\n", $s); // standart dizge
printf("[%10s]\n", $s); // boşluklarla sağa hizalanır
printf("[%-10s]\n", $s); // boşluklarla sola hizalanır
printf("[%010s]\n", $s); // 0'larla doldurma dizgelerde de çalışır
printf("[%'#10s]\n", $s); // '#' özel dolgu karakteri olarak kullanılır
printf("[%10.10s]\n", $t); // 10 karakterlik sınırlamayla sola hizalama
?>
Yukarıdaki örneğin çıktısı:
[monkey] [ monkey] [monkey ] [0000monkey] [####monkey] [many monke]
Örnek 7 - sprintf() ve sıfır dolgulu tamsayılar
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Örnek 8 - sprintf() ve para biçemleme
<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money çıktısı: "123.1"
$formatted = sprintf("%01.2f", $money);
// echo $formatted çıktısı: "123.10"
?>
Örnek 9 - sprintf() ve bilimsel gösterim
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // 3.625e+8 çıktılar
?>