yaml_parse
(PECL yaml >= 0.4.0)
yaml_parse — Analyse un flux YAML
Description
Convertit tout ou partie d'un document YAML provenant d'une chaîne vers une variable PHP.
Liste de paramètres
-
input
-
La chaîne à analyser comme document YAML.
-
pos
-
Le document à extraire du flux (-1 pour tous les documents, 0 pour le premier, ...).
-
ndocs
-
Si le paramètre
ndocs
est fourni, alors il est rempli avec le nombre de documents trouvés dans le flux. -
callbacks
-
Analyseurs de contenu pour les noeuds YAML. Tableau associatif tag YAML => callable. Voir l'analyse des fonctions de rappel pour plus d'informations.
Valeurs de retour
Retourne la valeur encodée de input
dans le type PHP
approprié ou FALSE
si une erreur survient.
Si pos
vaut -1, un tableau sera retourné
avec pour chaque valeur un document trouvé dans le flux.
Exemples
Exemple #1 Exemple yaml_parse()
<?php
$yaml = <<<EOD
---
invoice: 34843
date: "2001-01-23"
bill-to: &id001
given: Chris
family: Dumars
address:
lines: |-
458 Walkman Dr.
Suite #292
city: Royal Oak
state: MI
postal: 48046
ship-to: *id001
product:
- sku: BL394D
quantity: 4
description: Basketball
price: 450
- sku: BL4438H
quantity: 1
description: Super Hoop
price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
EOD;
$parsed = yaml_parse($yaml);
var_dump($parsed);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
array(8) { ["invoice"]=> int(34843) ["date"]=> string(10) "2001-01-23" ["bill-to"]=> &array(3) { ["given"]=> string(5) "Chris" ["family"]=> string(6) "Dumars" ["address"]=> array(4) { ["lines"]=> string(34) "458 Walkman Dr. Suite #292" ["city"]=> string(9) "Royal Oak" ["state"]=> string(2) "MI" ["postal"]=> int(48046) } } ["ship-to"]=> &array(3) { ["given"]=> string(5) "Chris" ["family"]=> string(6) "Dumars" ["address"]=> array(4) { ["lines"]=> string(34) "458 Walkman Dr. Suite #292" ["city"]=> string(9) "Royal Oak" ["state"]=> string(2) "MI" ["postal"]=> int(48046) } } ["product"]=> array(2) { [0]=> array(4) { ["sku"]=> string(6) "BL394D" ["quantity"]=> int(4) ["description"]=> string(10) "Basketball" ["price"]=> int(450) } [1]=> array(4) { ["sku"]=> string(7) "BL4438H" ["quantity"]=> int(1) ["description"]=> string(10) "Super Hoop" ["price"]=> int(2392) } } ["tax"]=> float(251.42) ["total"]=> float(4443.52) ["comments"]=> string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338." }
Notes
Le fait de traiter une entrée utilisateur non sécurisée avec yaml_parse() est dangereux si l'utilisation de unserialize() est activé pour les noeuds utilisant la balise !php/object. Ce comportement peut être désactivé en utilisant la configuration ini yaml.decode_php.
Voir aussi
- yaml_parse_file() - Analyse un flux YAML depuis un fichier
- yaml_parse_url() - Analyse un flux YAML depuis une URL
- yaml_emit() - Retourne une chaîne représentant une valeur YAML
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-yaml-parse.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.