(PECL yaml >= 0.4.0)
yaml_parse — Analyse un flux YAML
Convertit tout ou partie d'un document YAML provenant d'une chaîne vers une variable PHP.
inputLa 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.
      
callbacksAnalyseurs de contenu pour les nœuds YAML. Tableau associatif tag YAML => callable. Voir l'analyse des fonctions de rappel pour plus d'informations.
   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.
  
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);
?>
Résultat de l'exemple ci-dessus est 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."
}
    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 nœuds utilisant
    la balise !php/object. Ce comportement peut être
    désactivé en utilisant la configuration ini
    yaml.decode_php.