PHP.mk документација

yaml_parse

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.yaml-parse.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.yaml-parse.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
yaml_parse

Референца за `function.yaml-parse.php` со подобрена типографија и навигација.

function.yaml-parse.php

yaml_parse

(PECL yaml >= 0.4.0)

yaml_parseАнализирајте YAML поток

= NULL

yaml_parse(
         string $input,
         int $pos = 0,
         int &$ndocs = ?,
         array $callbacks = null
): mixed

Конвертирајте цел или дел од YAML документ поток во PHP променлива.

Параметри

input

На string за анализирање како YAML документ поток.

pos

Документ за извлекување од поток (-1 за сите документи, 0 за првиот документ, ...).

ndocs

Враќа ndocs е обезбедено, тогаш се пополнува со бројот на пронајдени документи во потокот.

callbacks

Ракувачи со содржина за YAML јазли. Асоцијативни array на YAML таг => callable мапирања. Погледнете callback функции за парсирање за повеќе детали.

Вратени вредности

Ја враќа вредноста кодирана во input во соодветен PHP тип или false Враќа име на базата на податоци при успех, и pos is -1 an array ќе биде вратен со еден запис за секој документ пронајден во потокот.

Примери

Пример #1 yaml_parse() example

<?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);
?>

Горниот пример ќе прикаже нешто слично на:

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

Белешки

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Обработката на недоверливи кориснички внесувања со yaml_parse() е опасна ако употребата на unserialize() е овозможена за јазли што го користат !php/object таг. Ова однесување може да се оневозможи со користење на yaml.decode_php ini поставката.

Види Исто така

Белешки од корисници 3 белешки

Zalmoksis
пред 7 години
It seams the YAML standard version here is the 1.1 and not the (1.2 released in 2009), so all of the following values: y, Y, yes, Yes, YES, n, N, no, No, NO, true, True, TRUE, false, False, FALSE, on, On, ON, off, Off, OFF are confusingly at times interpreted as booleans.
alpacagm at gmail dot com
пред 14 години
Simple usage example of interpreting custom tags:
<?php
$data=
"#yaml
---
data: !mytag bar test
...
";

function callback($value){
  return str_replace('bar','baz',$value);
}
$cnt;
$array=yaml_parse($data,0,$cnt,array('!mytag'=>'callback'));

print_r($array['data']);
?>
output:
Array
(
   [data] => baz test
)
note, there is a related bug in version 1.0.1 (see tracker)
laura dot dean at mooneleaf dot com
пред 9 години
When entering the string through a form, I had to first use utf8_decode on the input before using yaml_parse or else I got a cryptic error message --

Warning: yaml_parse(): reading error encountered during parsing: control characters are not allowed (line 1, column 1)

-- even though the special character was buried deep in the file.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.