Fonction sscanf() de PHP

La fonction sscanf()


PHP references des fonctions PHP

 (PHP 4 >= 4.0.1, PHP 5)

sscanf() — Analyse une chaîne à l'aide d'un format

Définition et utilisation

La fonction sscanf() analyse l'entrée d'une chaîne selon un format spécifique. La fonction sscanf() analyse une chaîne dans des variables basées sur la chaîne de format.

Si seulement deux paramètres sont passés à cette fonction, les données seront renvoyées comme tableau (array). Autrement, si des paramètres facultatifs sont passés, les données analysées sont stockées dans ce tableau. S'il y a plus de spécificateurs que des variables pour les contenir, une erreur se produit. Cependant, s'il y a moins de spécificateurs que de variables, les variables supplémentaires contiennent le NULLE.

Syntaxe

              sscanf (chaîne, format, arg1, arg2, arg++)
           
 
Paramètre Description

chaîne

Requis. Spécifie la chaîne à lire

format

Requis. Spécifie le format à employer. Valeurs possibles de format :

  • %% - Renvoie un signe de pour cent
  • %b - Nombre binaire
  • %c - Le caractère selon la valeur ASCII
  • %d - Nombre décimal signé
  • %e - Notation scientifique (par exemple 1.2e+2)
  • %u - Nombre décimal non signé
  • %f - Nombre à virgule flottante (type float), (tenant compte de la locale utilisée).
  • %F - Nombre à à virgule flottante (type float), (ne tenant pas compte de la locale utilisée).
  • %o - Nombre octal
  • %s - Chaîne
  • %x - Nombre hexadécimal (lettres minuscules)
  • %X - Nombre hexadécimal (lettres majuscules)

Valeurs additionnelles de format. Celles-ci sont placées entre les % et la lettre (exemple %.2f) :

  • + (forces + et - devant des nombres. Par défaut, seulement des nombres négatifs sont marqués)
  • '(Spécifie quoi employer comme remplissage. Par défaut c’est l'espace. Doit être employé ainsi que le spécificateur de largeur. Exemple : % ' et  x20s (emploie « x » comme remplissage)
  • - (Justifie gauche la valeur variable)
  • [0-9] (spécifie la largeur minimum tenue )
  • . [0-9] (spécifie le nombre de chiffres décimaux ou  longueur maximum de chaîne)
Note : Si des valeurs additionnelles multiples de format sont employées, elles doivent être dans le même ordre comme ci-dessus

arg1

Facultatif. La première variable pour stocker des données dedans

arg2

Facultatif. La deuxième variable pour stocker des données dedans

arg++

Facultatif. Le tiers, quatrième, et ainsi de suite, pour stocker des données dedans


Exemple 1 Sélectionner le code

              <?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 : $day -" . substr($month, 0, 3) .
              "-$year\n";
              ?>
           
 

Le résultat du code ci-dessus sera :


              Le produit 2350001 a été fabriqué le : 1 -Jan-2000
          
 

Exemple 2 Sélectionner le code

              <?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";
              ?>
           
 

Le code source de la page générée par le code  ci-dessus sera :


	<author id='24'>
		<firstname>Lewis</firstname>
		<surname>Carroll</surname>
	</author>
			
 


Par carabde 22 Aout 2014