sscanf
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
sscanf — Analyse une chaîne à l'aide d'un format
Description
sscanf() est l'inverse de la fonction
printf(). sscanf() lit
des données dans la chaîne str
, et
l'interprète en fonction du format format
,
qui est décrit dans la documentation de la fonction sprintf().
Tous les caractères blancs dans la chaîne format
correspondent
à un caractère blanc dans la chaîne str
. 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
-
str
-
La chaîne à analyser.
-
format
-
Le format interprété pour la chaîne
str
, qui est décrit dans la documentation de la fonction sprintf() avec les différences suivantes :- La fonction n'est pas sensible à la locale courante.
- F, g, G et b ne sont pas supportés.
- D correspond aux nombres décimaux.
- i correspond aux entiers avec une détection de la base.
- n correspond aux nombres de caractères analysés.
- s arrête la lecture à n'importe quel caractère d'espace.
-
...
-
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
, alors elles seront disponibles
dans str
, et -1 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";
?>
Version en cache
21/11/2024 23:30:41 Cette version de la page est en cache (à la date du 21/11/2024 23:30:41) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.sscanf.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.