yaml_parse
(PECL yaml >= 0.4.0)
yaml_parse — Analiza una secuencia de texto en formato YAML
Descripción
Convierte toda o parte de una secuencia de texto en YAML a una variable en PHP.
Parámetros
-
input -
La secuencia de texto (string) a analizar en formato YAML.
-
pos -
Documento YAML a extraer desde la secuencia de texto (-1 para analizar todos los documentos, 0 solo para el primer documento, etc).
-
ndocs -
Si se facilita
ndocs, se completará con el número de documentos encontrados en la secuencia de texto. -
callbacks -
Controlador de contenido para los nodos YAML. Es un array associativo de etiquetas YAML => asociando sus callback correspondientes. Ver Analizar callbacks para más información.
Valores devueltos
Devuelve el valor codificado de input en el formato
apropiado de PHP o FALSE en caso de error. Si el valor de pos es -1 devolverá un
array con una entrada por cada documento encontrado en el texto.
Ejemplos
Ejemplo #1 Ejemplo de 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);
?>
El resultado del ejemplo sería algo similar a:
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."
}
Ver también
- yaml_parse_file() - Analiza una secuencia de texto en formato YAML desde un fichero
- yaml_parse_url() - Analiza una secuencia de texto Yaml desde una URL
- yaml_emit() - Devuelve la representación de un valor YAML