yaml_parse

(PECL yaml >= 0.4.0)

yaml_parseAnalyse un flux YAML

Description

mixed yaml_parse ( string $input [, int $pos = 0 [, int &$ndocs [, array $callbacks ]]] )

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()

  1. <?php
  2. $yaml = <<<EOD
  3. ---
  4. invoice: 34843
  5. date: "2001-01-23"
  6. bill-to: &id001
  7. given: Chris
  8. family: Dumars
  9. address:
  10. lines: |-
  11. 458 Walkman Dr.
  12. Suite #292
  13. city: Royal Oak
  14. state: MI
  15. postal: 48046
  16. ship-to: *id001
  17. product:
  18. - sku: BL394D
  19. quantity: 4
  20. description: Basketball
  21. price: 450
  22. - sku: BL4438H
  23. quantity: 1
  24. description: Super Hoop
  25. price: 2392
  26. tax: 251.420000
  27. total: 4443.520000
  28. comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
  29. ...
  30. EOD;
  31.  
  32. $parsed = yaml_parse($yaml);
  33. var_dump($parsed);
  34. ?>

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."
}

Voir aussi

LoadingChargement en cours