PHP vfprintf() fonksiyonu

Örnek

Metni "test.txt" adlı metin dosyasına yazın:

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"There are 쥕lion bicycles in %s.",array($number,$str));
?>

Yukarıdaki kodun çıktısı:

40

Aşağıdaki metin "test.txt" dosyasına yazılacaktır:

Beijing'de 9 milyon bisiklet var.

Tanım ve Kullanım

vfprintf() fonksiyonu, biçimlendirilmiş dizeleri belirtilen çıktı akışına (örneğin: dosya veya veritabanı) yazar.

fprintf() ile farklı olarak, vfprintf() içindeki parametreler dizide bulunur. Dizinin elemanları ana dize içindeki % işaretleri yerine yerleştirilir. Bu fonksiyon adım adım çalışır. İlk % işaretinde ilk dizin elemanı yerleştirilir, ikinci % işaretinde ikinci dizin elemanı yerleştirilir, ve bu şekilde devam eder.

Açıklama:% işareti birden fazla ise arg Parametre varsa, yer tutucu kullanmanız gerekir. Yer tutucular % işareti sonrasına yerleştirilir ve rakam ve "\$" içerir. Örnek 2'ye bakın.

İlgili fonksiyonlar:

Sözdizimi

vfprintf(stream,format,argarray)
Parametre Açıklama
stream Gerekli. Dizesinin nereye yazılacağını veya nereden alınacağını belirler.
format

Gerekli. Dizesi ve içindeki değişkenlerin nasıl biçimlendirileceğini belirler.

Muhtemel biçim değerleri:

  • %% - Bir yüzdelik işaret (%) döndürür
  • %b - İkili sayı
  • %c - ASCII değeriyle karşılık gelen karakter
  • %d - Pozitif ve negatif işaret içeren ondalıklı sayı (negatif, 0, pozitif)
  • %e - Küçük harflerle bilimsel sayı sistemi (örneğin 1.2e+2)
  • %E - Buyuk harflerle bilimsel sayı sistemi (örneğin 1.2E+2)
  • 蒩ozitif işaret içermeyen ondalıklı sayı (0 veya daha büyük)
  • %f - Yerel ayarlar içinde kalan kesirli sayı
  • %F - Yerel ayarlar dışında kalan kesirli sayı
  • %g - Daha kısa %e ve %f
  • %G - Daha kısa %E ve %f
  • %o - Sekizli sayı
  • %s - Dize
  • %x - Küçük harflerle onaltılık sayı
  • %X - Buyuk harflerle onaltılık sayı

Eklenmiş biçim değeri. % ve harf arasında konulmalıdır (örneğin %.2f):

  • + (Sayı önüne + veya - ekleyerek sayının pozitif veya negatifliğini tanımlayın.Varsayılan olarak, sadece negatif sayılar işaretlenir, pozitif sayılar işaretlenmez)
  • '' (Doldurma karakterini belirtir, varsayılan boşluktır. Genişlik belirteçleri ile birlikte kullanılmalıdır. Örneğin: '%'x20s ("x" olarak doldurma kullanılır))}
  • - (Değişken değerini sola ayarlar)
  • .[0-9] (Değişken değerinin en küçük genişliğini belirtir)
  • .[0-9] (Ondalık sayı veya maksimum dizge uzunluğunu belirtir)

Açıklama:Birden fazla format değeri kullanılırsa, bu değerler yukarıdaki sırayla olmalıdır.

argarray Gerekli. Parametrelerle birlikte gelen bir dizi, bu parametreler yukarıdaki sırayla yerleştirilir format Dizge içindeki %% işaretinin yerinde.

Teknik ayrıntılar

Dönüş değeri: Yazılan dizginin uzunluğunu döndürür.
PHP sürümü: 5+

Daha fazla örnek

Örnek 1

Metni dosyaya yazın:

<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>

Aşağıdaki metin "test.txt" dosyasına yazılacaktır:

123.000000456.000000

Örnek 2

Yer tutucuları kullanarak:

<?php
$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"With 2 decimals: %1$.2f
\nOndalık olmaksızın: %1$u",array($number));
?>

Aşağıdaki metin "test.txt" dosyasına yazılacaktır:

2 ondalık basamağında: 123.00
Ondalık olmaksızın: 123

Örnek 3

printf() kullanarak tüm olası format değerlerini gösterin:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII karakter 50 2'yi temsil eder
// Açıklama: Format değeri "%%" yüzdelik işaretini döndürür
printf("%%b = %%b <br>",$num1); // İkili sayı
printf("%%c = %%c <br>",$char); // ASCII karakter
printf("%%d = %%d <br>",$num1); // İşaretli ondalık sayı
printf("%%d = %%d <br>",$num2); // İşaretli ondalık sayı
printf("%%e = %%e <br>",$num1); // Bilimsel sayı (küçük harf)
printf("%%E = %%E <br>",$num1); // Bilimsel sayı (büyük harf)
printf("%鑾u <br>",$num1); // Negatif olmayan ondalıklı sayı
printf("%鑾u <br>",$num2); // Negatif olmayan ondalıklı sayı
printf("%%f = %f <br>",$num1); // Yerel ayara göre tamsayı
printf("%%F = %F <br>",$num1); // Yerel ayarları dikkate almadan tamsayı
printf("%%g = %g <br>",$num1); // %e ve %f'den kısa
printf("%%G = %G <br>",$num1); // %E ve %f'den kısa
printf("%%o = %o <br>",$num1); // Sekizli sayı
printf("%%s = %s <br>",$num1); // Dizgi
printf("%%x = %x <br>",$num1); // Küçük harflerle onaltılık sayı
printf("%%X = %X <br>",$num1); // Büyük harflerle onaltılık sayı
printf("%%+d = %+d <br>",$num1); // Pozitif işaretli sembol açıklaması
printf("%%+d = %+d <br>",$num2); // Negatif işaretli sembol açıklaması
?>

Çalışma Örneği