Ein Kunde gibt in einem Webshop auf einer Webseite eine Rechnungsnummer ein. Diese setzt sich aus organisatorischen Gründen aus einem Textteil und der eigentlichen Rechnungs-ID zusammen. Um die Rechnungsdaten in der Datenbank zu finden, ist nur die Rechnungs-ID notwendig. Um aus einem Text Werte zu extrahieren, ist die Funktion sscanf geeignet. Diese liefert anhand des übergebenen Formatstring eine Liste von Werte. Ein weiterer Anwendungsfall wäre die Zerlegung des Datums im Format „21. Jänner 1973“ in Tag, Monat und Jahr.
Der Syntax:
Array = sscanf(Zeichenkette, Formatstring)
Beispiel:
<?php
// Ermittlung der Rechnungs ID aus der Rechnungsnummer
$rechnungsnummer='re-11546';
list($rechnungsid)=sscanf($rechnungsnummer, "re-%d");
echo 'Die Rechnungsnummer:
' . $rechnungsnummer . '
hat die Rechnungs ID:'.$rechnungsid;
?>
Ausgabe:
Die Rechnungsnummer re-11546 hat die Rechnungs ID: 11546
Im Beispiel wird die Rechnungsnummer re-11546 der Variable $rechnungsnummer zugewiesen. Um die eigentliche Rechnungsnummer 11546 zu ermitteln, wird die Funktion sscanf() aufgerufen. Dazu wird der Funktion im 1. Parameter die zu analysierende Zeichenkette übergeben, in diesem Beispiel die komplette Rechnungsnummer (re-11546). Im 2. Parameter wird der Formatstring definiert. Für Zahlen lautet der Formatstring %d. Da in dem zu analysierenden Text mehrere Werte (wie beim Datum) vorkommen können, ist der Rückgabewert ein Array. In diesem Beispiel wird der Rückgabewerte in das Aarray list($rechnungsid) geschrieben. Mit echo wird die ermittelte Rechnungs-ID schließlich ausgegeben.
Der Gegensatz zu der oben beschriebenen Funktion ist printf(), bei dem ein Text aus verschiedenen Werten zusammengesetzt wird.