Funkcija sscanf
Funkcija sscanf analizuoja eilutę, naudodama nurodytą formatą,
ir grąžina reikšmes. Pirmuoju parametru funkcija priima analizuotiną eilutę,
antruoju - formato eilutę, o tolesni parametrai (neprivalomi) - kintamuosius,
į kuriuos bus įrašyti analizės rezultatai.
Formato eilutėje naudojami specialūs simboliai (formato specifikatoriai), kurie prasideda ženklu % ir valdo išvesties formatavimą.
Sintaksė
sscanf(string $str, string $format [, mixed &$... ]): mixed
Formato specifikatoriai
| Specifikatorius | Aprašas |
|---|---|
%s |
Eilutė |
%d |
Ženklinis sveikasis skaičius (dešimtainis) |
%u |
Beženklis sveikasis skaičius (dešimtainis) |
%f |
Slankiojo kablelio skaičius (nuo lokalės) |
%F |
Slankiojo kablelio skaičius (nepriklausomas nuo lokalės) |
%c |
Simbolis pagal ASCII kodą |
%x |
Sveikasis skaičius šešioliktainėje sistemoje (mažosios raidės) |
%X |
Sveikasis skaičius šešioliktainėje sistemoje (didžiosios raidės) |
%o |
Sveikasis skaičius aštuntainėje sistemoje |
%b |
Sveikasis skaičius dvejetainėje sistemoje |
%e |
Mokslinis žymėjimas (mažosios raidės) |
%E |
Mokslinis žymėjimas (didžiosios raidės) |
%g |
Trumpasis %e arba %f žymėjimas |
%G |
Trumpasis %E arba %F žymėjimas |
%% |
Procento ženklas |
Pavyzdys
Išanalizuokime eilutę, išskirdami skaičių ir tekstą:
<?php
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
Kodo vykdymo rezultatas:
[42, 'the']
Pavyzdys
Išskaidykime datą į sudėtines dalis:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
Kodo vykdymo rezultatas:
'Year: 2023, Month: 12, Day: 31'