Funkce sscanf
Funkce sscanf analyzuje řetězec pomocí zadaného formátu
a vrací hodnoty. Prvním parametrem funkce přijímá řetězec k analýze,
druhým - řetězec formátu a další parametry (volitelné) - proměnné,
do kterých budou zapsány výsledky analýzy.
V řetězci formátu se používají speciální symboly (formátové specifikátory), které začínají znakem % a řídí formátování výstupu.
Syntaxe
sscanf(string $str, string $format [, mixed &$... ]): mixed
Formátové specifikátory
| Specifikátor | Popis |
|---|---|
%s |
Řetězec |
%d |
Celé číslo se znaménkem (desítkové) |
%u |
Celé číslo bez znaménka (desítkové) |
%f |
Číslo s plovoucí desetinnou čárkou (závislé na lokalizaci) |
%F |
Číslo s plovoucí desetinnou čárkou (nezávislé na lokalizaci) |
%c |
Znak podle ASCII kódu |
%x |
Celé číslo v šestnáctkové soustavě (malá písmena) |
%X |
Celé číslo v šestnáctkové soustavě (velká písmena) |
%o |
Celé číslo v osmičkové soustavě |
%b |
Celé číslo v binární soustavě |
%e |
Vědecká notace (malá písmena) |
%E |
Vědecká notace (velká písmena) |
%g |
Krátký zápis %e nebo %f |
%G |
Krátký zápis %E nebo %F |
%% |
Znak procenta |
Příklad
Analyzujme řetězec a extrahujme číslo a text:
<?php
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
Výsledek provedení kódu:
[42, 'the']
Příklad
Analyzujme datum na součásti:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
Výsledek provedení kódu:
'Year: 2023, Month: 12, Day: 31'