If you use the command line interface (CLI SAPI), you may be interested by the 3 standard input/output streams (STDIN, STDOUT & STDERR) described at: https://www.php.net/manual/en/features.commandline.io-streams.php
(PHP 5, PHP 7, PHP 8)
fprintf — Biçemli dizgeyi bir akıma yazar
Tanıtıcısı akım
ile belirtilen dosyaya (akıma)
biçem
dizgesine göre üretilen dizgeyi yazar.
akım
Bir dosya tanıtıcısı. Genellikle fopen() kullanılarak oluşturulur.
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
bağımsız değişkeninin 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 bağımsız değişken 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ı veya
*
. *
kullanılmışsa, genişlik,
belirtici tarafından biçimlendirilmiş değerden önce ek bir tamsayı
değeri olarak sağlanır.
Bir nokta .
ve ardından anlamı belirtece bağlı olan
seçimlik bir tamsayı veya *
:
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.
*
kullanılmışsa, genişlik, belirtici tarafından biçimlendirilmiş değerden önce ek bir tamsayı değeri olarak sağlanır.
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). |
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
|
bağımsız_değişkenler
Akıma yazılan dizgenin uzunluğunu döndürür.
PHP 8.0.0 ve sonrasında, bağımsız değişken sayısı sıfırsa
ValueError oluşuyor. PHP 8.0.0 öncesinde bunun
yerine bir E_WARNING
uyarısı verilirdi.
PHP 8.0.0 ve sonrasında, [width]
(genişlik) sıfırdan
küçükse veya PHP_INT_MAX
'tan büyükse bir
ValueError oluşuyor. PHP 8.0.0 öncesinde, bir
E_WARNING
uyarısı verilirdi.
PHP 8.0.0 ve sonrasında, [precision]
(hassasiyet)
sıfırdan küçükse veya PHP_INT_MAX
'tan büyükse bir
ValueError oluşuyor. PHP 8.0.0 öncesinde, bir
E_WARNING
uyarısı verilirdi.
PHP 8.0.0 ve sonrasında, gereğinden daha az bağımsız değişken verildiğinde
bir ArgumentCountError oluşuyor. PHP 8.0.0 öncesinde,
bir E_WARNING
uyarısı verilirdi.
Sürüm: | Açıklama |
---|---|
8.0.0 |
Bu işlev başarısızlık durumunda artık false döndürmüyor.
|
8.0.0 |
Bağımsız değişken sayısı sıfırsa ValueError oluşuyor. Evvelce bunun yerine bir E_WARNING uyarısı verilirdi.
|
8.0.0 |
[width] (genişlik) sıfırdan küçükse veya
PHP_INT_MAX 'tan büyükse bir
ValueError oluşuyor;
evvelce bir E_WARNING uyarısı verilirdi.
|
8.0.0 |
[precision] (hassasiyet) sıfırdan küçükse veya
PHP_INT_MAX 'tan büyükse bir
ValueError oluşuyor;
evvelce bir E_WARNING uyarısı verilirdi.
|
8.0.0 |
Gereğinden daha az bağımsız değişken verildiğinde bir
ArgumentCountError oluşuyor; evvelce bir
E_WARNING uyarısı verilirdi.
|
Örnek 1 - fprintf(): Sıfır dolgulu tamsayılar
<?php
if (!($fp = fopen('date.txt', 'w'))) {
return;
}
fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// ISO biçemli tarihi date.txt dosyasına yazar
?>
Örnek 2 - fprintf(): para biçemleme
<?php
if (!($fp = fopen('currency.txt', 'w'))) {
return;
}
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money çıktısı: "123.1";
$len = fprintf($fp, '%01.2f', $money);
// currency.txt dosyasına "123.10" yazar
echo "currency.txt dosyasına $len bayt yazıldı";
// Kaç bayt yazıldığını belirtmek için fprintf dönüş değerini kullanıyoruz
?>
If you use the command line interface (CLI SAPI), you may be interested by the 3 standard input/output streams (STDIN, STDOUT & STDERR) described at: https://www.php.net/manual/en/features.commandline.io-streams.php