Funktio sscanf
Funktio sscanf analysoi merkkijonon käyttäen määriteltyä muotoilua,
ja palauttaa arvot. Ensimmäisenä parametrina funktio ottaa analysoitavan merkkijonon,
toisena - muotoilumerkkijonon, ja seuraavat parametrit (valinnaiset) - muuttujat,
joihin jäsennystulokset tallennetaan.
Muotoilumerkkijonossa käytetään erikoismerkkejä (muotoilumäärittäjiä), jotka alkavat merkillä % ja ohjaavat tulosteen muotoilua.
Syntaksi
sscanf(string $str, string $format [, mixed &$... ]): mixed
Muotoilumäärittäjät
| Määrittäjä | Kuvaus |
|---|---|
%s |
Merkkijono |
%d |
Etumerkillinen kokonaisluku (desimaali) |
%u |
Etumerkitön kokonaisluku (desimaali) |
%f |
Liukuluku (maantieteellisesti riippuvainen) |
%F |
Liukuluku (ei maantieteellisesti riippuvainen) |
%c |
Merkki ASCII-koodin mukaan |
%x |
Kokonaisluku heksadesimaalijärjestelmässä (pieni kirjain) |
%X |
Kokonaisluku heksadesimaalijärjestelmässä (iso kirjain) |
%o |
Kokonaisluku oktaalijärjestelmässä |
%b |
Kokonaisluku binäärijärjestelmässä |
%e |
Tieteellinen merkintätapa (pieni kirjain) |
%E |
Tieteellinen merkintätapa (iso kirjain) |
%g |
Lyhyt merkintä %e tai %f |
%G |
Lyhyt merkintä %E tai %F |
%% |
Prosenttimerkki |
Esimerkki
Jäsennetään merkkijono, poimien luku ja teksti:
<?php
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
Koodin suorituksen tulos:
[42, 'the']
Esimerkki
Jäsennetään päivämäärä osiinsa:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
Koodin suorituksen tulos:
'Year: 2023, Month: 12, Day: 31'