yaml_parse
(PECL yaml >= 0.4.0)
yaml_parse — Розбирає потік YAML
Опис
yaml_parse( string $input, int $pos = 0, int &$ndocs = ?, array $callbacks = null): mixed
Конвертує весь потік YAML або його частину і записує змінну.
Список параметрів
input
Рядок для парсингу як потік YAML.
pos
Документ для розбору (-1
для всіх документів, для первого документа, ...).
ndocs
Якщо ndocs
знайдено, тоді він буде замінений на кількість документів у потоці YAML.
callbacks
Обробники вмісту для вузлів YAML. Асоціативний масив (array), ключі якого є тегами YAML, а значення callback-функціями (callable), які їх оброблятимуть. Докладніше цей механізм описаний у розділі callback-функції розбору
Значення, що повертаються
Повертає значення, закодоване в input
, у відповідному типі PHP або **false
**в случае возникновения ошибки. Если параметрpos
равен-1
, буде повернено масив, що містить один запис для кожного документа, знайденого в потоці.
Приклади
Приклад #1 Приклад використання yaml_parse()****
Loading...
Висновок наведеного прикладу буде схожим на:
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."
}
Примітки
Увага
Обробляти неперевірене введення користувача, у разі коли для вузлів YAML, що використовують тег !php/object
, разрешено использование функцииunserialize(), Вкрай небезпечно. Цю поведінку можна вимкнути за допомогою ini-налаштування yaml.decode_php
Дивіться також
- yaml_parse_file() - Розбирає YAML-потік із файлу
- yaml_parse_url() - Розбирає YAML-потік із URL
- yaml_emit() - Повертає YAML-подання значення