Fonction sscanf() PHP

Exemple

Analyser la chaîne :

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// Afficher le type et la valeur
var_dump($age,$weight);
?>

Exemple de exécution

Définition et utilisation

La fonction sscanf() analyse l'entrée venue de la chaîne en fonction du format spécifié. La fonction sscanf() analyse la chaîne en fonction de la chaîne de format.

Si seuls deux paramètres sont passés à cette fonction, les données sont retournées sous forme d'array. Sinon, si des paramètres supplémentaires sont passés, les données analysées sont stockées dans ces paramètres. Si le nombre de délimiteurs est supérieur au nombre de variables qui les contiennent, une erreur se produit. Cependant, si le nombre de délimiteurs est inférieur au nombre de variables qui les contiennent, les variables supplémentaires contiennent NULL.

Fonctions associées :

  • printf() - Sortir une chaîne formatée
  • sprintf() - Écrire une chaîne formatée dans une variable

Syntaxe

sscanf(string,format,arg1,arg2,arg++)
Paramètres Description
string Requis. Définit la chaîne à lire.
format

Requis. Définit le format à utiliser.

Valeurs de format possibles :

  • %% - Retourne un pourcentage %
  • %c - Caractère correspondant à la valeur ASCII
  • %d - Nombre décimal avec signe (nombre négatif, 0, nombre positif)
  • %e - Notation scientifique en minuscules (par exemple 1.2e+2)
  • 蒧ombre décimal sans signe (supérieur ou égal à 0)
  • %f - Nombre flottant
  • %o - Nombre octal
  • %s - Chaîne de caractères
  • %x - Nombre hexadécimal (lettres minuscules)
  • %X - Nombre hexadécimal (lettres majuscules)

Valeurs de format supplémentaires. Doit être placé entre % et une lettre (par exemple %.2f) :

  • + (ajouter + ou - devant le nombre pour définir la signification positive ou négative du nombre. Par défaut, seuls les nombres négatifs sont marqués, et les nombres positifs ne le sont pas.)
  • ' (définir ce qui est utilisé comme rembourrage, par défaut c'est un espace. Il doit être utilisé avec l'indicateur de largeur.)
  • - (alignement à gauche de la valeur de la variable)
  • .[0-9] (définir la largeur minimale de la valeur de la variable)
  • .[0-9] (définir le nombre de décimales ou la longueur maximale de la chaîne)

Remarque :Si plusieurs valeurs de format mentionnées ci-dessus sont utilisées, elles doivent être utilisées dans l'ordre indiqué ci-dessus.

arg1 Optionnel. La première variable pour stocker les données.
arg2 Optionnel. La deuxième variable pour stocker les données.
arg++ Optionnel. Les variables troisièmes et quatrièmes pour stocker les données, etc.

Détails techniques

Valeur de retour : Si seuls deux paramètres sont passés à cette fonction, les données sont retournées sous forme d'array. Sinon, si des paramètres supplémentaires sont passés, les données analysées sont stockées dans ces paramètres. Si le nombre de délimiteurs est supérieur au nombre de variables qui les contiennent, une erreur se produit. Cependant, si le nombre de délimiteurs est inférieur au nombre de variables qui les contiennent, les variables supplémentaires contiennent NULL.
Version PHP : 4.0.1+

Plus d'exemples

Exemple 1

Utilisez les valeurs de format %s, %d et %c :

<?php
$str = "If you divide 4 by 2 you'll get 2";
$format = sscanf($str,"%s %s %s %d %s %d %s %s %c");
print_r($format);
?>

Exemple de exécution