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); ?>
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:
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:
Lisämuotoiluarvot. Varmista, että ne sijoitetaan % ja kirjain välille (esim. %.2f):
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); ?>