phpday 2021 digital edition

fprintf

(PHP 5, PHP 7, PHP 8)

fprintfBiçemli dizgeyi bir akıma yazar

Açıklama

fprintf ( resource $akım , string $biçem , mixed ...$değiştirgeler ) : int

Tanıtıcısı akım ile belirtilen dosyaya (akıma) biçem dizgesine göre üretilen dizgeyi yazar.

Değiştirgeler

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 değiştirgesinin getirilmesiyle sonuçlanır.

Bir dönüşüm belirtiminin sözdizimi: %[degnum$][seçenekler][genişlik][.hassasiyet]belirteç.

degnum

Ardına bir dolar imi $ konmuş bir tamsayı; dönüşümde ele alınacak değiştirge sayısını belirler.

seçenekler
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.

genişlik

Bu dönüşümün kaç karakterle sonuçlanacağının belirtildiği tamsayı.

hassasiyet

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 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çler
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, PHP 5.2.1'den beri ondalık noktadan sonraki basamakların sayısını ifade eder. Önceki sürümlerde, anlamlı basamak sayısı olarak alınırdı (bir eksik).
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 ggibidir 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).

Uyarı

c tür belirteci dolguyu ve genişliği yoksayar.

Uyarı

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 Yönetimi
Tür Belirteçler
string s
int d, u, c, o, x, X, b
double g, G, e, E, f, F

değiştirgeler

Dönen Değerler

Akıma yazılan dizgenin uzunluğunu döndürür.

Örnekler

Ö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
?>

Ayrıca Bakınız

  • printf() - Biçemli bir dizge çıktılar
  • sprintf() - Biçemli bir dizge döndürür
  • vprintf() - Biçemli bir dizge çıktılar
  • vsprintf() - Biçemli bir dizge döndürür
  • vfprintf() - Biçemli dizgeyi bir akıma yazar
  • sscanf() - Girdi dizgesini belli bir biçeme göre yorumlar
  • fscanf() - Bir dosyadaki girdiyi belli bir biçeme göre çözümler
  • number_format() - Sayıyı binlik bölümlere ayırır
  • date() - Yerel tarihi/saati biçimlendirir

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top