Funkcija sscanf
Funkcija sscanf analizē virkni, izmantojot norādīto formātu,
un atgriež vērtības. Pirmo parametru funkcija pieņem parsējamo virkni,
otro - formāta virkni, bet nākamie parametri (neobligātie) - mainīgos,
kuros tiks ierakstīti parsēšanas rezultāti.
Formāta virknē tiek izmantotas īpašas zīmes (formāta specifikatori), kas sākas ar zīmi % un kontrolē izvades formatējumu.
Sintakse
sscanf(string $str, string $format [, mixed &$... ]): mixed
Formāta specifikatori
| Specifikators | Apraksts |
|---|---|
%s |
Virkne |
%d |
Zīmes vesels skaitlis (decimāls) |
%u |
Bez zīmes vesels skaitlis (decimāls) |
%f |
Peldoša punkta skaitlis (lokāli atkarīgs) |
%F |
Peldoša punkta skaitlis (ne lokāli atkarīgs) |
%c |
Rakstzīme pēc ASCII koda |
%x |
Vesels skaitlis heksadecimālajā sistēmā (mazie burti) |
%X |
Vesels skaitlis heksadecimālajā sistēmā (lielie burti) |
%o |
Vesels skaitlis oktālajā sistēmā |
%b |
Vesels skaitlis binārajā sistēmā |
%e |
Zinātniskais pieraksts (mazie burti) |
%E |
Zinātniskais pieraksts (lielie burti) |
%g |
Īsais pieraksts %e vai %f |
%G |
Īsais pieraksts %E vai %F |
%% |
Procentu zīme |
Piemērs
Parsēsim virkni, izvelkot skaitli un tekstu:
<?php
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
Koda izpildes rezultāts:
[42, 'the']
Piemērs
Parsēsim datumu sastāvdaļās:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
Koda izpildes rezultāts:
'Year: 2023, Month: 12, Day: 31'