PHP sscanf()-funktio

Esimerkki

Tulkitaan merkkijonoa:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// Näytä tyyppi ja arvo
var_dump($age,$weight);
?>

Suoritettavat esimerkit

Määrittely ja käyttö

sscanf()-funktio tulkitsee merkkijonosta tietoja määritetyn muodon mukaan. sscanf()-funktio tulkitsee merkkijonosta tietoja muotoiluskeleen mukaan.

Jos funktioon annetaan vain kaksi parametria, tiedot palautetaan tietueena. Muussa tapauksessa, jos annetaan lisää parametreja, tulkittavat tiedot tallennetaan näihin parametreihin. Jos erotinmerkkien määrä on suurempi kuin niitä sisältävien muuttujien määrä, tapahtuu virhe. Jos erotinmerkkien määrä on pienempi kuin niitä sisältävien muuttujien määrä, ylimääräiset muuttujat sisältävät NULL.

Liittyvät funktiot:

  • printf() - Tulosta muotoiltu merkkijono
  • sprintf() - Kirjoita muotoiltu merkkijono muuttujaan

syntaksi

sscanf(merkkijono,muotoilu,arg1,arg2,arg++)
parametrit kuvaus
merkkijono Välttämätön. Määrittää luettavan merkkijonon.
muotoilu

Välttämätön. Määrittää käytettävän muotoilun.

Mahdolliset muotoiluarvot:

  • %% - palauttaa prosenttimerkin %
  • %c - ASCII-arvon vastaava merkki
  • %d - sisältää miinusmerkin desimaaliluku (miinusluku, 0, pozitivinen luku)
  • %e - pienillä kirjaimilla tietokonekiusausluku (esim. 1.2e+2)
  • 蒞i sisällä miinusmerkkiä desimaaliluku (vähintään 0)
  • %f - liukuluku
  • %o - oktaaninumero
  • %s - merkkijono
  • %x - 16-taustanumero (pienikirjain)
  • %X - heksadesimaaliluku (isoa kirjainta)}

Lisämuotoiluarvot. Varmista, että ne sijoitetaan % ja kirjain välille (esim. %.2f):

  • + (lisää + tai - numeron eteen määrittääkseen luvun miinus- tai plusmerkin. Oletuksena vain miinusluvut merkataan, positiiviset luvut eivät.)
  • ' (määrittää täytteen käytettäväksi, oletus on välilyönti. Se on käytettävä yhdessä leveydenspesifikaattorin kanssa.)
  • - (oikeaasennus muuttujan arvoa)
  • .[0-9] (määrittää muuttujan arvon vähimmäisleveyden)
  • .[0-9] (määrittää desimaalipaikkojen määrän tai enimmäismerkkien pituuden)

Huomautus:Jos käytetään useita edellä mainittuja muotoiluarvoja, ne on käytettävä yllä olevassa järjestyksessä.

arg1 Valinnainen. Tietojen tallentamiseen käytettävä ensimmäinen muuttuja.
arg2 Valinnainen. Tietojen tallentamiseen käytettävä toinen muuttuja.
arg++ Valinnainen. Tietojen tallentamiseen käytettävät kolmas ja neljäs muuttujat jne.

Tekninen yksityiskohta

Palautusarvo: Jos funktioon annetaan vain kaksi parametria, tiedot palautetaan taulukkomuodossa. Muussa tapauksessa, jos annetaan ylimääräisiä parametreja, tulkittavat tiedot tallennetaan näihin parametreihin. Jos erotinmerkkien määrä on suurempi kuin niitä sisältävien muuttujien määrä, tapahtuu virhe. Jos erotinmerkkien määrä on pienempi kuin niitä sisältävien muuttujien määrä, ylimääräiset muuttujat sisältävät NULL-arvon.
PHP versio: 4.0.1+

Lisää esimerkkejä

Esimerkki 1

Käytä muotoiluarvoja %s, %d ja %c:

<?php
$str = "If you divide 4 by 2 you'll get 2";
$format = sscanf($str,"%s %s %s %d %s %d %s %s %c");
print_r($format);
?>

Suoritettavat esimerkit