Rechercher une fonction PHP

yaml_parse

(PECL yaml >= 0.4.0)

yaml_parseAnalyse un flux YAML

Description

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

Convertit tout ou partie d'un document YAML provenant d'une chaîne vers une variable PHP.

Retour à la première page de Manuel PHP  Table des matières Haut

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.

Retour à la première page de Manuel PHP  Table des matières Haut

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.

Retour à la première page de Manuel PHP  Table des matières Haut

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

Retour à la première page de Manuel PHP  Table des matières Haut

Notes

Avertissement

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.

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

Rechercher une fonction PHP

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

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

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.

Table des matières Haut