(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
sscanf — Analyse une chaîne à l'aide d'un format
Description
sscanf(string
$string, string
$format, mixed
&...$vars): array|int|null
Tous les caractères blancs dans la chaîne format correspondent
à un caractère blanc dans la chaîne string. Cela signifie que
même une tabulation (\t) dans la chaîne de format peut correspondre à
un simple espace dans la chaîne str.
Liste de paramètres
-
string
-
La chaîne à analyser.
-
format
-
Le format interprété pour string décrit
dans la documentation de la sprintf() avec les différences suivantes :
-
La fonction ne tient pas compte du contexte local.
-
F, g, G et
b ne sont pas supportés.
-
D représente un nombre décimal.
-
i représente un nombre entier avec détection de base.
-
n représente le nombre de caractères traités à ce stade.
-
s arrête la lecture à chaque caractère d'espacement.
-
* au lieu de argnum$ supprime
l'affectation de cette spécification de conversion.
-
vars
-
Optionnellement, vous pouvez passer des variables dans ce paramètre,
par référence qui contiendront les valeurs de l'analyse.
Valeurs de retour
Si seulement deux paramètres sont fournis, les valeurs trouvées
seront retournées sous forme de tableau. Sinon, si le paramètre
optionnel sont fourni, la fonction retournera le nombre de
valeurs assignées. Le paramètre optionnel doit être passé par
référence.
S'il y a plus de sous-chaînes attendus dans le paramètre
format, qu'il y a de disponibles dans
string, alors null sera retourné.
Exemples
Exemple #1 Exemple avec sscanf()
<?php
// Lecture d'un numéro de série
list($serial) = sscanf("SN/2350001", "SN/%d");
// et la date de fabrication
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Le produit $serial a été fabriqué le : $year-" . substr($month, 0, 3) . "-$day\n";
?>
Si des paramètres optionnels sont passés, sscanf() retournera
le nombre de valeurs assignées.
Exemple #2 sscanf() - utilisation des paramètres optionnels
<?php
// lit les informations d'auteur, et génère une entrée DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>
Voir aussi
- printf() - Affiche une chaîne de caractères formatée
- sprintf() - Retourne une chaîne formatée
- fprintf() - Écrit une chaîne formatée dans un flux
- vprintf() - Affiche une chaîne formatée
- vsprintf() - Retourne une chaîne formatée
- vfprintf() - Écrit une chaîne formatée dans un flux
- fscanf() - Analyse un fichier en fonction d'un format
- number_format() - Formate un nombre pour l'affichage
- date() - Formate un horodatage Unix