sscanf în PHP

Citește valori dintr-un text după un șablon, inversul lui sprintf.

Sintaxă
sscanf(string $string, string $format, mixed &...$vars): array|int|null

Ce face sscanf

sscanf primește un text și un șablon cu marcaje (%d număr întreg, %f număr zecimal, %s cuvânt fără spații, %c un caracter) și extrage valorile corespunzătoare, deja convertite la tipul potrivit.

Fără parametri suplimentari, returnează un tablou cu valorile. Dacă dai variabile după șablon, valorile sunt puse în ele, iar funcția returnează câte valori a găsit.

Parametri

Parametru Descriere
$string Textul citit.
$format Șablonul, cu marcaje %d, %f, %s etc.
$vars Opțional. Variabile în care se pun valorile găsite.

Ce returnează

Un tablou cu valorile (null pentru cele care nu au fost găsite) sau, dacă ai dat variabile, numărul de valori puse în ele. Pentru un text gol returnează null, respectiv -1.

Exemple

Exemplul 1: Valorile într-un tablou

<?php
var_dump(sscanf("Comanda 1024: 3 buc.", "Comanda %d: %d buc."));

Rezultat

array(2) {
  [0]=>
  int(1024)
  [1]=>
  int(3)
}

Exemplul 2: Valorile direct în variabile

<?php
$gasite = sscanf("19.10.2026", "%d.%d.%d", $zi, $luna, $an);

echo "Am găsit $gasite valori: ziua $zi, luna $luna, anul $an";

Rezultat

Am găsit 3 valori: ziua 19, luna 10, anul 2026

Greșeli frecvente

  • Te aștepți ca %s să citească un text cu spații. Se oprește la primul spațiu. Pentru texte complexe folosește preg_match.

Comenzi înrudite

  • sprintf: Construiește un text formatat după un șablon și îl returnează, fără să îl afișeze.
  • preg_match: Verifică dacă un text se potrivește cu o expresie regulată și extrage prima potrivire.
  • explode: Împarte un text în bucăți după un separator și le pune într-un tablou.