(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";
?>