Funzione sscanf

La funzione sscanf analizza una stringa utilizzando il formato specificato, e restituisce i valori. Il primo parametro della funzione è la stringa da analizzare, il secondo è la stringa di formato, e i parametri successivi (opzionali) sono le variabili in cui verranno scritti i risultati dell'analisi.

Nella stringa di formato vengono utilizzati caratteri speciali (specificatori di formato), che iniziano con il simbolo % e controllano la formattazione dell'output.

Sintassi

phpsscanf(string $str, string $format [, mixed &$... ]): mixed

Specificatori di formato

Specificatore Descrizione
%s Stringa
%d Numero intero con segno (decimale)
%u Numero intero senza segno (decimale)
%f Numero in virgola mobile (dipendente dalle impostazioni locali)
%F Numero in virgola mobile (non dipendente dalle impostazioni locali)
%c Carattere secondo il codice ASCII
%x Numero intero in sistema esadecimale (lettere minuscole)
%X Numero intero in sistema esadecimale (lettere maiuscole)
%o Numero intero in sistema ottale
%b Numero intero in sistema binario
%e Notazione scientifica (lettere minuscole)
%E Notazione scientifica (lettere maiuscole)
%g Formato breve %e o %f
%G Formato breve %E o %F
%% Simbolo di percentuale

Esempio

Analizziamo una stringa, estraendo un numero e del testo:

php<?php
  $res = sscanf("42 is the answer", "%d is %s");
  print_r($res);
?>

Risultato dell'esecuzione del codice:

php[42, 'the']

Esempio

Analizziamo una data nelle sue componenti:

php<?php
  $date = "2023-12-31";
  list($year, $month, $day) = sscanf($date, "%d-%d-%d");
  echo "Year: $year, Month: $month, Day: $day";
?>

Risultato dell'esecuzione del codice:

php'Year: 2023, Month: 12, Day: 31'

Vedi anche

  • la funzione printf,
    che stampa una stringa formattata
  • la funzione explode,
    che divide una stringa utilizzando un separatore