Funkcja sscanf() w PHP

Przykład

Analizuj ciąg znaków:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// Wyświetl typ i wartość
var_dump($age,$weight);
?>

Przykłady uruchomieniowe

Definicja i użycie

Funkcja sscanf() analizuje wejście z ciągu znaków według określonego formatu. Funkcja sscanf() analizuje ciąg znaków na podstawie formatu stringa.

Jeśli przekazano tylko dwa parametry, dane będą zwracane w formie tablicy. W przeciwnym razie, jeśli przekazano dodatkowe parametry, przetworzone dane będą przechowywane w tych parametrach. Jeśli liczba separatorów jest większa niż liczba zmiennych, wystąpi błąd. Jednak jeśli liczba separatorów jest mniejsza niż liczba zmiennych, dodatkowe zmienne będą zawierać NULL.

Związane funkcje:

  • printf() - Wyświetl sformatowany ciąg znaków
  • sprintf() - Zapisz sformatowany ciąg znaków do zmiennej

Gramatyka

sscanf(string,format,arg1,arg2,arg++)
Parametr Opis
string Wymagane. Określa ciąg znaków do odczytania.
format

Wymagane. Określa format do użycia.

Możliwe wartości formatu:

  • %% - zwraca procent %
  • %c - znak odpowiadający wartości ASCII
  • %d - dziesiętna liczba z znakiem (+, -, 0, +)
  • %e - format liczby naukowej z małymi literami (np. 1.2e+2)
  • 蒝ziesiętna liczba bez znaku (+, -, 0, +)
  • %f - liczba zmiennoprzecinkowa
  • %o - liczba ósemkowa
  • %s - ciąg znaków
  • 0x - Liczba szesnastkowa (małe litery)
  • %X - liczba szesnastkowa (duże litery)

Dodatkowe wartości formatowe. Muszą być umieszczone między % i literą (np. %.2f)

  • + (dodaje + lub - przed liczbą, aby zdefiniować znak liczby. Domyślnie, tylko ujemne liczby są oznaczane, pozytywne liczby nie są oznaczane)
  • ' (określa, co użyć jako wypełnienia, domyślnie jest to spacja. Musi być używane razem z określeniem szerokości)
  • - (lewe wyważenie wartości zmiennej)
  • .[0-9] (określa minimalną szerokość wartości zmiennej)
  • .[0-9] (określa liczbę miejsc po przecinku lub maksymalną długość ciągu)

Komentarz:Jeśli używasz wielu powyższych wartości formatowych, muszą one być używane w kolejności podanej powyżej.

arg1 Opcjonalnie. Pierwsza zmienna przechowująca dane.
arg2 Opcjonalnie. Druga zmienna przechowująca dane.
arg++ Opcjonalnie. Trzecia i czwarta zmienne przechowujące dane, itd.

Szczegółowe informacje techniczne

Wartość zwracana: Jeśli przekazano tylko dwa parametry do tej funkcji, dane będą zwracane w formie tablicy. W przeciwnym razie, jeśli przekazano dodatkowe parametry, dane te będą przechowywane w tych parametrach. Jeśli liczba separatorów jest większa niż liczba zmiennych, które je zawierają, wystąpi błąd. Jednak jeśli liczba separatorów jest mniejsza niż liczba zmiennych, dodatkowe zmienne będą zawierać NULL.
Wersja PHP: 4.0.1+

Więcej przykładów

Przykład 1

Użyj wartości formatowych %s, %d i %c:

<?php
$str = "Jeśli podzielisz 4 przez 2, uzyskasz 2";
$format = sscanf($str,"%s %s %s %d %s %d %s %s %c");
print_r($format);
?>

Przykłady uruchomieniowe