(PHP 5, PHP 7, PHP 8)
vfprintf — Biçemli dizgeyi bir akıma yazar
$dt
, string $biçem
, array $değerler
): int
değerler
dizisindeki değerler
biçem
dizgesine göre değerlendirilerek, oluşturulan
dizge tanıtıcısı dt
ile belirtilen akıma yazılır.
Değişken sayıda değer yerine bunları bir dizi içinde kabul etmesi dışında fprintf() gibidir.
dt
Dosya tanıtıcısı.
biçem
Biçem dizgesi sıfır veya daha fazla yönergeden oluşur:
doğrudan sonuca kopyalanmış sıradan karakterler (%
hariç) ve dönüşüm belirtimleri, her biri kendi
değiştirgesinin getirilmesiyle sonuçlanır.
Bir dönüşüm belirtiminin sözdizimi:
%[degnum$][seçenekler][genişlik][.hassasiyet]belirteç
.
Ardına bir dolar imi $
konmuş bir tamsayı;
dönüşümde ele alınacak değiştirge sayısını belirler.
Seçenek | Açıklama |
---|---|
- |
Verilen alan genişliğinde sola dayalı; Sağa dayalılık öntanımlıdır. |
+ |
Pozitif sayıların önüne artı imi konur; Öntanımlı olarak sadece negatif sayılara eksi imi konur. |
(boşluk) |
Sonuca boşluklarla dolgu yapar. Bu öntanımlıdır. |
0 |
Sayılar sadece soldan sıfırla doldurulur.
s belirteçleri ile sağ taraf da sıfırla doldurulur.
|
' (krk) |
Sonuca (krk) karakteri ile dolgu yapılır. |
Bu dönüşümün kaç karakterle sonuçlanacağının belirtildiği tamsayı.
Bir nokta .
ve ardından anlamı belirtece bağlı olan
bir tamsayı:
e
, E
,
f
ve F
belirteçleri için: ondalık noktadan sonra yazdırılacak rakam sayısı
(6 öntanımlıdır)
g
ve G
,
h
ve H
belirteçleri için: yazdırılacak maksimum anlamlı basamak sayısı.
s
belirteci için: dizeye azami karakter sınırı
koyan bir kesme noktası gibi davranır.
Bilginize: Nokta, hassasiyet için açık bir değer olmadan belirtilirse, 0 varsayılır.
Bilginize:
PHP_INT_MAX
'dan büyük bir konum belirteci kullanmaya çalışılırsa uyarı üretilir.
Belirteç | Açıklama |
---|---|
% |
Yüzde karakteri. Değer gerekmez. |
b |
Değer bir tamsayı olarak ele alınır ve ikil bir sayı olarak gösterilir. |
c |
Değer bir tamsayı olarak ele alınır ve ASCII bir karakter olarak gösterilir. |
d |
Değer bir tamsayı olarak ele alınır ve (işaretli) bir ondalık sayı olarak gösterilir. |
e |
Değer bilimsel bir gösterim (örn. 1.2e+2) olarak ele alınır. Hassasiyet belirteci,ondalık noktadan sonraki basamakların sayısını ifade eder. |
E |
e belirteci gibi, farklı olarak büyük harf kullanır
(örn. 1.2E+2).
|
f |
Değer kayan noktalı sayı olarak ele alınır ve kayan noktalı sayı olarak gösterilir (yerele uygun). |
F |
Değer kayan noktalı sayı olarak ele alınır ve kayan noktalı sayı olarak gösterilir (yerele bakmaz) PHP 5.0.3 ve sonrasında kullanılabilir. |
g |
Genel biçem. P sıfırdan farklı hassasiyet olsun, hassasiyet verilmemişse 6, hassasiyet sıfır ise 1 olsun. E tarzındaki dönüşümün üssü X ise: P > X ≥ −4 ise, dönüşüm f tarzı ve hassasiyet P − (X + 1) olur. Aksi takdirde, dönüşüm e tarzı ve hassasiyet P − 1 olur. |
G |
g gibidir fakat
E ve f kullanır.
|
h |
g gibidir fakat F kullanır.
PHP 8.0.0 ve sonrasında kullanılabilir.
|
H |
g gibidir fakat
E ve F kullanır.
PHP 8.0.0 ve sonrasında kullanılabilir.
|
o |
Değer bir tamsayı olarak ele alınır ve sekizlik bir sayı olarak gösterilir. |
s |
Değer bir dizge olarak ele alınır ve gösterilir. |
u |
Değer bir tamsayı olarak ele alınır ve işaretsiz bir ondalık sayı olarak gösterilir. |
x |
Değer bir tamsayı olarak ele alınır ve onaltılık bir sayı olarak gösterilir (küçük harfli). |
X |
Değer bir tamsayı olarak ele alınır ve onaltılık bir sayı olarak gösterilir (büyük harfli). |
c
tür belirteci dolguyu ve genişliği yoksayar.
Karakter başına birden fazla bayt gerektiren karakter kümeleriyle dizge ve genişlik belirteçlerini bir arada kullanmaya çalışmak, beklenmeyen sonuçlar verebilir
Değişkenler, belirteç için uygun bir türe zorlanacaktır:
Tür | Belirteçler |
---|---|
string | s |
int |
d ,
u ,
c ,
o ,
x ,
X ,
b
|
double |
e ,
E ,
f ,
F ,
g ,
G ,
h ,
H
|
değerler
biçem
dizgesine göre değerlendirilecek
değerlerden oluşan dizi.
Çıktılanan dizgenin uzunluğu ile döner.
Örnek 1 vfprintf(): sıfır dolgulu tamsayılar
<?php
if (!($dt = fopen('date.txt', 'w')))
return;
vfprintf($dt, "%04d-%02d-%02d", array($year, $month, $day));
// ISO biçemli tarih date.txt dosyasına yazılır
?>