The 7th Annual China PHP Conference

yaml_emit

(PECL yaml >= 0.5.0)

yaml_emitReturns the YAML representation of a value

Descrição

yaml_emit ( mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK [, array $callbacks = NULL ]]] ) : string

Generate a YAML representation of the provided data.

Parâmetros

data

The data being encoded. Can be any type except a resource.

encoding

Output character encoding chosen from YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Output linebreak style chosen from YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Content handlers for emitting YAML nodes. Associative array of classname => callable mappings. See emit callbacks for more details.

Valor Retornado

Returns a YAML encoded string on success.

Changelog

Versão Descrição
1.1.0 The callbacks parameter was added.

Exemplos

Exemplo #1 yaml_emit() example

<?php
$addr 
= array(
    
"given" => "Chris",
    
"family"=> "Dumars",
    
"address"=> array(
        
"lines"=> "458 Walkman Dr.
        Suite #292"
,
        
"city"=> "Royal Oak",
        
"state"=> "MI",
        
"postal"=> 48046,
      ),
  );
$invoice = array (
    
"invoice"=> 34843,
    
"date"=> 980208000,
    
"bill-to"=> $addr,
    
"ship-to"=> $addr,
    
"product"=> array(
        array(
            
"sku"=> "BL394D",
            
"quantity"=> 4,
            
"description"=> "Basketball",
            
"price"=> 450,
          ),
        array(
            
"sku"=> "BL4438H",
            
"quantity"=> 1,
            
"description"=> "Super Hoop",
            
"price"=> 2392,
          ),
      ),
    
"tax"=> 251.42,
    
"total"=> 4443.52,
    
"comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
  );
var_dump(yaml_emit($invoice));
?>

O exemplo acima irá imprimir algo similar à:

string(628) "---
invoice: 34843
date: 980208000
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
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.
...
"

Veja Também

add a note add a note

User Contributed Notes 1 note

up
0
josh dot sickmate at gmail dot com
27 days ago
There isn't an option for indenting depth so it's always two spaces. If you want more than this you can use a simple regex.

Converting from two spaces to four:
<?php
$yaml
= preg_replace('/^(  +)/m', '$1$1', $yaml);
?>

Add two more $1 into the replacement for eight spaces.
To Top