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

yaml_parse_file

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

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

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

function.yaml-parse-file.php

yaml_parse_file

(PECL yaml >= 0.4.0)

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

= NULL

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

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

Параметри

filename

Патека до датотеката.

pos

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

ndocs

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

callbacks

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

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

Ја враќа вредноста кодирана во filename во соодветниот PHP тип.

При неуспех, се враќа стринг што содржи порака за грешка.

Враќа pos is -1, еден array ќе биде вратен со еден запис за секој документ пронајден во потокот.

Белешки

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

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

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

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

Ден М
пред 5 години
Be aware that when parsing yaml an unquoted Y value will become a boolean true

This may be desired or undesired behavior depending on context

- chr_name: X // becomes string X
- chr_name: Y // becomes boolean true

[
 [chr_name => X],
 [chr_name => true],
]

You definitely don't want chromosome Y becoming chromosome 1 (true) as happened to me, so heads up!
Арне Л.
пред 10 години
As Jesse Donat mentioned the type will be infered automatically. To enforce some type you can use the callback facility like this:

<?php
function cb_yaml_date($value, $tag, $flags) {
    return new DateTime($value);
}

$yaml = <<<YAML
event1:
  name: My Event
  date: !date 25.05.2001
YAML;

$ndocs = 0;
$data = yaml_parse($yaml, 0, $ndocs, array('!date' => 'cb_yaml_date'));

print_r($data);
?>

The above example will output something similar to:

    Array
    (
        [event1] => Array
            (
                [name] => My Event
                [date] => DateTime Object
                    (
                        [date] => 2001-05-25 00:00:00
                        [timezone_type] => 3
                        [timezone] => Europe/Berlin
                    )
    
            )
    
    )

BTW if you want to have large numbers you are probably using BC Math. Thus, you simple enclose your number in quotes:

<?php
$yaml = <<<YAML
largenumber: '14695760472279668267313200104308'
YAML;
?>
Џеси Донат
пред 14 години
This is entirely dependent on type detection - as far as I can find there is no way to force a type and for instance when you have a very long integer as a value - in my case 1313035348823 it gets limited to 2147483647 - PHP's max integer.
Навигација

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

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

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

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

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

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

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