PHPsscanf()

王林
王林original
2024-08-29 12:55:391235parcourir

Le sscanf() est une fonction prédéfinie en PHP qui renvoie la chaîne d'entrée analysée après l'avoir analysée selon le format requis. Il prend l'entrée de 2 paramètres et nous donne le tableau requis et dans les autres cas, lorsque d'autres paramètres sont transmis, tels que des paramètres facultatifs, les données analysées y seront stockées. Il génère une erreur lorsqu'il y a plus de spécificateurs que les variables pour les contenir et les variables supplémentaires obtiendront NULL s'il y a des spécificateurs inférieurs aux variables.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe de PHP sscanf()

Vous trouverez ci-dessous la syntaxe de PHP sscanf() :

sscanf(input_string, format, arg1, arg2, arg3....)

Paramètres d'entrée :

1. input_string : Il s'agit de la chaîne d'entrée à lire.

2. format : Nous pouvons spécifier les formats selon la liste ci-dessous, selon les besoins :

  • %% : Ce format sera en signe de pourcentage.
  • %c : Ce format renvoie le caractère selon les valeurs ASCII requises.
  • %d : Ce format est destiné aux valeurs décimales signées. (Peut être zéro, négatif ou positif)
  • %e : Ce format renvoie la notation scientifique en minuscules. (par exemple 1.2e+2)
  • %u : Utilisé pour représenter un nombre décimal non signé qui est égal ou supérieur à zéro.
  • %f : Ceci est utilisé pour représenter un nombre à virgule flottante.
  • %o : Ceci est utilisé pour représenter un nombre octal.
  • %s : Ceci représente le format de chaîne.
  • %x : Cela représente des lettres minuscules pour un nombre hexadécimal.
  • %X : Cela représente les lettres majuscules d'un nombre hexadécimal.

Il existe également quelques valeurs de format supplémentaires qui sont placées entre le symbole % et la lettre que nous donnons. (Par exemple %0.3f)

  • + (Cela force les valeurs + et – au début des nombres et il n'y a que des valeurs négatives marquées par défaut).
  • ' (Cela décrit ce qui doit être utilisé comme remplissage et l'espace est la valeur par défaut ici. Ceci doit être utilisé avec le spécificateur de largeur. Par exemple : %x30s qui utilise x pour le remplissage).
  • – (Ceci à gauche nous donnera la valeur de la variable).
  • [0-9] (Cela donne la largeur minimale détenue par la valeur variable).
  • . [0-9] (Cela décrit le nombre total de nombres décimaux ou la longueur maximale de la chaîne).
Remarque : Dans le cas où plusieurs formats sont utilisés, l'ordre suivi doit être le même que celui indiqué ci-dessus.
  • arg1 : Il s'agit d'un paramètre facultatif et également de la première variable dans laquelle nous stockons les données.
  • arg2 : Ceci est également facultatif et c'est la deuxième variable dans laquelle nous stockons les données.
  • arg++ : Ceci est facultatif et représente les variables successives dans lesquelles nous continuons à stocker nos données.

Valeurs de retour : Ici il y a 2 cas qui peuvent arriver :

  • S'il n'y a que 2 valeurs données comme paramètres d'entrée à cette fonction, alors les données seront renvoyées sous la forme d'un tableau.
  • Si d'autres paramètres facultatifs sont transmis, les données analysées y sont stockées.
  • S'il y a plusieurs spécificateurs dépassant les variables qui peuvent les contenir, une erreur est générée.
  • S'il y a moins de spécificateurs que les variables qu'ils peuvent contenir, alors NULL sera attribué à ces variables.
  • -1 sera renvoyé si plus de spécificateurs sont présents que dans le format attendu.

Exemples de PHP sscanf()

Vous trouverez ci-dessous les exemples mentionnés :

Exemple n°1

Code :

<?php
$text = "Random sentence goes here with numbers 5 and 8";
$f = sscanf($text,"%s %s %s %s %s %s %d %s %d");
print_r($f);
?>

Sortie :

PHPsscanf()

Dans cet exemple, nous spécifions un texte comme requis. Ensuite, utilisez la fonction sscanf et spécifiez les formats corrects qui représentent notre chaîne d'entrée. Par conséquent, dans la sortie, la chaîne exacte est affichée sous forme de tableau. Ceci uniquement si le format correspond aux données.

Exemple n°2

Code :

<?php
// fetching the unique ID of product
list($ID) = sscanf("SN/680001", "SN/%d");
// fetching date of manufacturing
$manf = "March 03 2001";
// fetching the date of expiry
$expiry = "March 03 2002";
// Parsing using sscanf function
list($mon, $day, $yr) = sscanf($manf, "%s %d %d");
list($mon, $day, $yr) = sscanf($expiry, "%s %d %d");
echo "Product $ID was manufactured on $manf and will expire on: $yr-" . substr($mon, 0, 3) . "-$day\n";
?>

Sortie :

PHPsscanf()

Dans cet exemple, nous montrons comment vérifier et afficher les informations sur le produit telles que son identifiant de fabrication unique et la date d'expiration. Ainsi, dans le premier paramètre, nous récupérons les informations d'identification et les analysons au format %d. Ensuite, nous récupérons la date de fabrication et la date d'expiration du produit et les analysons au format requis à l'aide de la fonction sscanf. Puis afficher toutes les choses analysées en une seule phrase. Plusieurs éléments peuvent être ajoutés ici pour afficher les informations souhaitées.

Example #3

Code:

<?php
// Fetching designer info and to generate DressInfo entry
$design = "13\tCoco Chanel";
$str = sscanf($design, "%d\t%s %s", $ID, $firstname, $lastname);
// Displaying all the above details after formatting
echo "<author id='$ID'>
<firstname>$firstname</firstname>
<surname>$lastname</surname>
</author>\n";
?>

Output:

PHPsscanf()

In this example we are using sscanf function to first parse the ID and name of the designer. Then displaying the same in HTML format by splitting the names into first name and last name.

Example #4

Code:

<?php
// We are initializing the string here
$arr = "Character PHP and number 7";
// Parsing the input string according to different format
$format = sscanf($arr,"%s %c%c%c %s %s  %d");
print_r($format);
?>

Output:

PHPsscanf()

In the above example we are first initializing the string as required and this time including a few character sets in combination with strings. The same we are parsing using the sscanf function.

Conclusion

As seen above in all the examples, sscanf function in PHP is basically used to parse any type of the input string as per the requirements. There are a few cases where this function shows inefficiency to parse the strings, where there may be incorrect output when we try to parse a tab delimited string also having normal spaces in between. It also does not give the expected output if in the code there is a file name with its extension where it finds difficult to separate the two in presence of a “.”.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:PHP explose()Article suivant:PHP explose()