PHP sscanf() functie

Voorbeeld

Parseer de teekensreeks:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// Toon type en waarde
var_dump($age,$weight);
?>

Uitvoervoorbeeld

Definitie en gebruik

De functie sscanf() parseert de invoer van de teekensreeks op basis van het opgegeven formaat. De functie sscanf() parseert de teekensreeks naar variabelen op basis van de formatte string.

Als er maar twee parameters naar deze functie worden doorgegeven, worden de gegevens in de vorm van een array geretourneerd. Als er extra parameters worden doorgegeven, worden de geparseerde gegevens in deze parameters opgeslagen. Als het aantal onderscheidingstekens groter is dan het aantal variabelen die ze bevatten, zal er een fout optreden. Hoewel, als het aantal onderscheidingstekens kleiner is dan het aantal variabelen die ze bevatten, bevatten de extra variabelen NULL.

Gerelateerde functies:

  • printf() - Geef een geformateerde teekensreeks weer
  • sprintf() - Schrijf een geformateerde teekensreeks naar een variabele

Syntaxis

sscanf(string,format,arg1,arg2,arg++)
Parameter Beschrijving
string Verplicht. Bepaal de te lezen teekensreeks.
format

Verplicht. Bepaal het te gebruiken formaat.

Mogelijke formatwaarden:

  • %% - Geef een procentteken % terug
  • %c - ASCII-waarde van de overeenkomstige letter
  • %d - Decimaal getal met teken (negatief, 0, positief)
  • %e - Wetenschappelijke notatie met kleine letters (bijvoorbeeld 1.2e+2)
  • 蒧egatiefloos decimaal getal (groter of gelijk aan 0)
  • %f - Float
  • %o - Octaal getal
  • %s - Teekensreeks
  • %x - Hexadecimaal getal (kleine letters)
  • %X - Hexadecimaal getal (hoofdletters)

Aanvullende opmaakwaarden. Verplicht te plaatsen tussen % en een letter (bijvoorbeeld %.2f):

  • + (voegt een + of - toe aan het begin van het getal om de positieve of negatieve kenmerken van het getal te definiëren. Standaard wordt alleen negatieve getallen gemarkeerd, positieve getallen niet.)
  • ' (stelt in wat als vulling wordt gebruikt, standaard is dit een spatie. Het moet samen worden gebruikt met de breedteindicator.)
  • - (links uitlijnen van de variabele)
  • .[0-9] (stelt de minimale breedte van de variabele in)
  • .[0-9] (stelt het aantal decimalen of de maximale stringlengte in)

Opmerking:Als je meerdere van de bovenstaande opmaakwaarden gebruikt, moeten ze in de volgorde van hierboven worden gebruikt.

arg1 Optioneel. De eerste variabele waarin de gegevens worden opgeslagen.
arg2 Optioneel. De tweede variabele waarin de gegevens worden opgeslagen.
arg++ Optioneel. De derde en vierde variabelen waarin de gegevens worden opgeslagen, enz.

Technische details

Retourwaarde: Als je alleen twee parameters naar deze functie stuurt, wordt de data als een array geretourneerd. Als je extra parameters stuurt, worden de geparseerde gegevens opgeslagen in deze parameters. Als het aantal delimiters groter is dan het aantal variabelen die het bevat, ontstaat er een fout. Als het aantal delimiters kleiner is dan het aantal variabelen die het bevat, bevatten de extra variabelen NULL.
PHP Versie: 4.0.1+

Meer voorbeelden

Voorbeeld 1

Gebruik de opmaakwaarden %s, %d en %c:

<?php
$str = "Als je 4 door 2 deelt, krijg je 2";
$format = sscanf($str,"%s %s %s %d %s %d %s %s %c");
print_r($format);
?>

Uitvoervoorbeeld