(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
sscanf — Girdi dizgesini belli bir biçeme göre yorumlar
sscanf() işlevi, printf() işlevinin
tersine çıktıyı biçemlemek yerine girdiyi bir biçeme göre çözümler.
sscanf() belirtilen dizge
dizgesini okur ve biçem
dizgesine göre bu dizgeyi
yorumlar.
Biçem dizgesindeki herhangi bir boşluk karakteri girdi dizgesindeki
herhangi bir boşluk karakteriyle eşleşir. Yani, biçem dizgesindeki bir
sekme karakteri (\t
) girdi dizgesindeki tek bir boşluk
karakteri ile eşleşebilir.
dizge
Yorumlanacak dizge.
biçem
Girdi dizge
sinin yorumlanmasında kullanılan
bu dizge ile ilgili ayrıntılar aşağıdaki farklar dışında
sprintf() işlevinin belgesinde açıklanmıştır:
F
, g
, G
and
b
desteklenmez.
D
ondalık sayı anlamına gelir.
i
taban algılamalı tamsayı anlamına gelir.
n
şimdiye kadar işlenen karakter sayısı anlamına gelir.
s
herhangi bir boşluk karakterinde okumayı durdurur.
dğşnum$
yerine *
bu dönüştürme belirtiminin atamasını baskılar.
değişkenler
Çözümlenen değerleri içermek üzere aktarımı isteğe bağlı gönderimli değişkenler.
İşleve sadece iki bağımsız değişken aktarılmışsa, çözümlenen değerler bir dizi içinde döndürülür. İsteğe bağlı bağımsız değişkenler belirtilmişse işlev bu bağımsız değişkenlere atanan değer sayısını döndürür. İsteğe bağlı bağımsız değişkenlerin gönderimli olarak aktarılmaları gerekir.
biçem
, dizge
içinde bulunandan
daha fazla alt dizge bekliyorsa, null
döndürülür.
Örnek 1 - sscanf() örneği
<?php
// Seri numarasını döndürelim
list($serial) = sscanf("SN/2350001", "SN/%d");
// üretim tarihini de döndürelim
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "$serial numaralı mal şu tarihte üretildi: $year-" .
substr($month, 0, 3) . "-$day\n";
?>
İşleve isteğe bağlı bağımsız değişkenler belirtilmişse işlev bu bağımsız değişkenlere atanan değer sayısını döndürür.
Örnek 2 - Seçimlik bağımsız değişkenlerle sscanf() kullanımı
<?php
// Yazar bilgisiyle bir DocBook girdisi üretelim
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>